扫码关注官方订阅号
因为input选择图片然后提交到服务器后会返回一个json数组的返回值,用传统的form表单提交图片,图片是能传上去了,但是没法接收到返回值。用的是angularjs框架,就想问一下可以把input选择到的图片放到formdata里传给服务器么?如果可以,具体要怎么实现?
学习是最好的投资!
直接用$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(){ }); } }]);
<!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>
为什么点击上传没反应?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
直接用$http的post方法就可以做到,具体的可以参考这篇博客:Multipart/form-data File Upload with AngularJS
为什么点击上传没反应?