[英]Angular JS “form Multi-part” file upload sending Undefined value to server. Cannot upload file to Java Server
我有以下HTML。
<form >
<input type="file" file-model="myFile"/>
<button ng-click="uploadFile()">upload me</button>
</form>
在控制器内部我有以下功能
$scope.uploadFile = function() {
var file = $scope.myFile; //when I try console.log(file...it says undefined)
var fd = new FormData();
fd.append('file', file);
$http.post("url", fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined},
transformResponse: [function (data) {
return data;
}]
}).then(function (result) {
console.log(result.data);
})
}
我的指令是
.directive('fileModel', ['$parse', function ($parse) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function(){
scope.$apply(function(){
modelSetter(scope, element[0].files[0]);
});
});
}
};
}]);
由于某种原因,我没有得到文件值。 在console.log()上,我收到未定义的信息。 仅供参考,我只是想获取一个文件。 我的代码有问题吗?
问题是文件的非绑定问题。 Angular还没有支持。 使用此处提供的解决方案解决了该问题。 AngularJs:如何检查文件输入字段中的更改?
这对我有用:
<div>
<input id="imageList" name="imageList" type="file" file-model="myFile">
</div>
我也有一个JSON对象以以下形式发送:
$scope.saveForm = function () {
var formData = new FormData();
var file = $scope.myFile;
formData.append("file", file);
var req = {
url: '/upload',
method: 'POST',
headers: {'Content-Type': undefined},
data: formData,
transformRequest: function (data, headersGetterFunction) {
return data;
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.