javascript - angularjs怎样可以用formdata上传图片?
PHPz
PHPz 2017-04-11 09:58:00
[JavaScript讨论组]

因为input选择图片然后提交到服务器后会返回一个json数组的返回值,用传统的form表单提交图片,图片是能传上去了,但是没法接收到返回值。用的是angularjs框架,就想问一下可以把input选择到的图片放到formdata里传给服务器么?如果可以,具体要怎么实现?

PHPz
PHPz

学习是最好的投资!

全部回复(2)
PHP中文网

直接用$http的post方法就可以做到,具体的可以参考这篇博客:Multipart/form-data File Upload with AngularJS

.service('fileUpload', ['$http', function ($http) {
    this.uploadFileToUrl = function(file, uploadUrl){
        var fd = new FormData(); //初始化一个FormData实例
        fd.append('file', file); //file就是图片或者其他你要上传的formdata,可以通过$("input")[0].files[0]来获取
        $http.post(uploadUrl, fd, {
            transformRequest: angular.identity,
            headers: {'Content-Type': undefined}
        })
        .success(function(){
        })
        .error(function(){
        });
    }
}]);
PHPz
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
  <title></title>


  <meta charset="UTF-8">

<script type="text/javascript" src="https://code.angularjs.org/1.4.4/angular.min.js"></script>
</head>
<body ng-app="myapp">
  

<p controller="upCtrl" >  

<form id='editfile' method='post'  enctype='multipart/form-data'>
    <input name="text" type="text"/>
    选择图片:<input name="avatar" id='upfile' type='file'/>

<button ng-click="upload()"  > upload </button>
</form>
</p>


<script >
var app = angular.module('myapp', []);
   
app.service('fileUpload', ['$http', function ($http) {
    this.uploadFileToUrl = function(file, uploadUrl){
        var fd = new FormData(); //初始化一个FormData实例

        fd.append('file', file); //file就是图片或者其他你要上传的formdata,可以通过$("input")[0].files[0]来获取
        $http.post(uploadUrl, fd, {
            transformRequest: angular.identity,
            headers: {'Content-Type': undefined}
        })
        .success(function(){
        })
        .error(function(){
        });
    }
}]);
   app.controller('upCtrl',  function($scope,$fileUpload){

    $scope.upload = function () {
console.log('upload');
var file=document.getElementById("upfile").files[0];
  
    $fileUpload.uploadFileToUrl('upload.php',file);

    };
});




</script>



</body>
</html>

为什么点击上传没反应?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号