当Content-Type设置为'multipart/form-data‘时,upload方法不会触发控制器方法。如果Content-Type设置为'application/json‘,方法将被触发,但文件对象将为空。
下面是我的客户端(Angular 4)实现:
public uploader = new FileUploader({
url: "/api/mycontroller/uploadfile",
allowedFileType: ["pdf"],
headers: <Headers[]>[
//{ name: 'Content-Type', value: 'application/json' }
{ name: 'Content-Type', value: 'multipart/form-data' }
]
});
save() {
//...
this.uploader.queue.reverse()[0].upload();
}
它是我的web api控制器(.net核心1.0):
[Route("uploadfile")]
[HttpPost]
public async Task<ActionResult> UploadFile([FromBody]IFormFile file)
{
//...
}也许我忘了添加一些特殊的参数或其他什么?
发布于 2017-07-13 22:27:20
我相信你的控制器方法应该是无参数的,你应该通过HttpContext获取你的文件,但我现在没有办法测试它,所以我不能确定……但我认为应该是这样的:
[Route("uploadfile")]
[HttpPost]
public async Task<ActionResult> UploadFile()
{
var file = HttpContext.Current.Request.Files[0];
//...
}https://stackoverflow.com/questions/45081395
复制相似问题