Javascript Angularjs:文件上载不工作
我正试图上传一个基于以下链接中教程的文件, 但问题是formdata请求中不存在该文件,并且http.POST请求在调用时失败。我在这方面花了很多时间,我无法发现任何错误。有人能帮我解决这个问题吗Javascript Angularjs:文件上载不工作,javascript,angularjs,asp.net-web-api,Javascript,Angularjs,Asp.net Web Api,我正试图上传一个基于以下链接中教程的文件, 但问题是formdata请求中不存在该文件,并且http.POST请求在调用时失败。我在这方面花了很多时间,我无法发现任何错误。有人能帮我解决这个问题吗 // NOW UPLOAD THE FILES. $scope.uploadFiles = function (id) { formdata.append('pid', id); debugger; var request = { method: 'POST
// NOW UPLOAD THE FILES.
$scope.uploadFiles = function (id) {
formdata.append('pid', id);
debugger;
var request = {
method: 'POST',
url: '/api/Project/PostProjectFiles',
data: formdata,
headers: {
'Content-Type': undefined
}
};
console.log(request);
// SEND THE FILES.
$http(request)
.then(function (d) {
alert(JSON.stringify(d));
})
.catch(function (d) {
alert(JSON.stringify(d));
console.log(d);
});
}
var formdata = new FormData();
$scope.getTheFiles = function ($files) {
//debugger;
angular.forEach($files, function (value, key) {
formdata.append(key, value);
});
console.log($files);
};
myApp.directive('ngFiles', ['$parse', function ($parse) {
function fn_link(scope, element, attrs) {
var onChange = $parse(attrs.ngFiles);
element.on('change', function (event) {
onChange(scope, {
$files: event.target.files
});
});
};
return {
link: fn_link
}
}]);
我怀疑上面的getthefiles()方法比$files包含的文件更多,但是formdata不包含这些文件
HTML代码
<div class="col-sm-8 panelpadding">
<div>
<input type="file" id="file1" name="file1" ng-model="project.file1" ng-files="getTheFiles($files)" class="col-sm-4" />
</div>
<div class="col-sm-12 text-center">
<button type="button" ng-click="uploadFiles(41)">Upload Documents</button>
</div>
</div>
可能是次要的,但代码中有一个额外的大括号。也许删除它,看看代码是否仍然在正确的函数/方法上下文中运行。这就是控制器的结束括号。没关系:)你能在调用这些函数的地方发布代码吗?现在添加。请检查可能是次要的,但代码中有一个额外的大括号。也许删除它,看看代码是否仍然在正确的函数/方法上下文中运行。这就是控制器的结束括号。没关系:)你能在调用这些函数的地方发布代码吗?现在添加。请查收
var httpRequest = HttpContext.Current.Request;
var FileObject = httpRequest.Params[0];
var FObject = httpRequest.Form[0];
id = Convert.ToInt32(httpRequest.Params[1]);