angular - 使用 Content-Type multipart/form-data 上传 IFormFile 时缺少内容类型边界
问题描述
我有这段代码可以将文件上传到 aspnet core Api
[HttpPost]
[Produces(typeof(MissionBalanceWithMissionBalanceLinesModel))]
public async Task<IActionResult> UploadBalance(IFormFile upload)
{
return Ok("successfully uploaded");
}
还有角码
const file: File = event.target.files[0];
const upload= new FormData();
fileToUpload.append('upload', file, file.name);
const blob = fileToUpload as any
let options_ : any = {
body: blob,
observe: "response",
responseType: "blob",
headers: new HttpHeaders({
/* "Content-Type": "multipart/form-data", */
"Accept": "text/plain"
})
};
return this.http.request("post", url_, options_)...
错误:System.IO.InvalidDataException:缺少内容类型边界。
评论该/* "Content-Type": "multipart/form-data", */
行会有所帮助,但由于这是 NswagStudio 生成的代码,我想找到另一个解决方法。
或者如何告诉 NswagStudio 不要生成这个 Content-Type 标头?
解决方案
您应该尽量避免请求方法使用 Post 方法。你可以在这里查看文档
addHero (hero: Hero): Observable<Hero> {
return this.http.post<Hero>(this.heroesUrl, hero, httpOptions)
.pipe(
catchError(this.handleError('addHero', hero))
);
}
所以你的代码应该是
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'multipart/form-data'
})
};
return this.http.post(url, fileToUpload, httpOptions)
推荐阅读
- wordpress - 如何从地理编码结果中排除路线?
- sql - 如何将 JSON 格式的 oracle 表行值转换为多个关系 COLUMNS?
- sql-server - 选择数据库表后处理数据时出现 SSAS 错误
- c# - 检测 WinRM 连接丢失
- django - 如何使用 NULL/None 插入外键
- reactjs - React MDBTable 渲染表中的每个项目
- php - 如果控制器或方法不存在,则将 url 重定向到 404 页面
- java - 为什么我在 Java 1.7.0 中看到 ConcurrentModificationException?
- http - Http 触发的 azure 函数中的异常处理 - 更好地控制 JSON 内容响应
- node.js - 当文件上传到服务器时,Webservice 做一些事情