【发布时间】:2018-06-26 04:45:36
【问题描述】:
问题:
API 控制器无法访问 HTTP 请求中包含 FormData 对象的 HTTP 请求数据
我需要将 http Post 请求中 FormData 对象中附加的文件对象数据传递给 asp.net api 控制器,前端是 angularjs。我无法从 api 控制器检索 http 请求数据。我的代码如下。请看看这个,它会很棒:)
当我通过时,
内容类型:未定义
错误提示 415 Unsupported Media Type
如果Content-type: multipart/form-data 则无法从 API 控制器访问数据。
前端
$scope.submit = function (files) {
var formData = new FormData();
var getFormData = function(appendFiles){
if (appendFiles.length) {
angular.forEach(appendFiles,function(file){
if(!file.uploaded){
formData.append("imgFiles",file);
file.uploaded = true;
}
});
} else {
formData.append('imgFiles', files);
}
console.log(formData.values());
return formData;
}
$http({
url : "URL",
method: "POST",
data: getFormData(files),
headers: {
'Content-Type': undefined
},
transformRequest: angular.identity,
})
.then(
function (resp) {
// alert(JSON.stringify(resp));
console.log(resp)
},
function (resp) {
console.log(resp)
}
);
};
API 控制器方法
[HttpPost]
[Route("route")]
public string UploadFiles(List<HttpPostedFileBase> files)
{
var filesToDelete = HttpContext.Current.Request.Files;
//i need to access file here.using param or otherway
return stat;
}
【问题讨论】:
-
如果您自己解决了问题,请使用答案框回答您的问题。这将使人们更容易找到。
标签: angularjs form-data asp.net-apicontroller httppostedfilebase