我正在使用此指令(ng--file-upload)上传图片
我需要将图像文件包含在POST
到ASP.NET Web API中,但我没有取得任何成功。
这是我在服务器上的方法:
public async Task<HttpResponseMessage> SaveData([FromBody]PostModel data)
当我发布数据时(来自js angular),所有数据都在这里,除了上传的文件:
$http({
method: 'POST',
url: path,
data: data,
file: photoFile
}).then(function...
我也尝试将其放入数据中,但它始终为空 如何在web api上发布和获取图像文件?
作为回应我得到了:
"Invalid 'HttpContent' instance provided. It does not have a content type header starting with 'multipart/'.
Parameter name: content"
在这一行:
var provider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(provider);
var data = {
"Username": $scope.username,
transformRequest: angular.identity,
headers: { 'Content-Type': undefined }
};
var fd = new FormData();
fd.append('file', $scope.photoFile);
$http({
method: 'POST',
url: 'path', fd,
data: data
}).the
答案 0 :(得分:1)
使用FormData API:
HTML:
<div class="button" ngf-select="upload($file)">Upload on file select</div>
控制器:
$scope.upload = function (file) {
var fd = new FormData();
fd.append('file', file);
//Append other data
//angular.forEach(data,function(v,k){
// fd.append(k,v);
//});
$http.post('your-upload-url', fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.then(function(res){
// get upload res
});
};