【发布时间】:2021-12-16 12:34:08
【问题描述】:
我正在尝试为我们的 API 创建一个文档上传方法。文本文件上传正常,但 word 文档、pdf、图像最终都损坏了。如果我尝试上传一个 18kb 的图像文件,它会以正确的文件名和扩展名保存在正确的位置,但它突然变成了一个无法打开的 31kb 文件。
**Controller Method**
[HttpPost("{uid}/Document")]
public IActionResult SaveDocument(int uid, [FromForm] Document document)
{
_entityService.SaveDocument(uid, UserUID, document);
return StatusCode(StatusCodes.Status201Created);
}
**Service Method**
public async void SaveDocument(int uid, int userUID, Document document)
{
try
{
string path = Path.Combine(Directory.GetCurrentDirectory(), "Temp", document.FileName);
using (FileStream createStream = new(path, FileMode.Create))
await document.FormFile.CopyToAsync(createStream);
}
catch(Exception ex)
{
EventLogger.LogException(ex);
throw;
}
}
**Model**
public class Document
{
public IFormFile FormFile { get; set; }
public byte[] bytes { get; set; }
public string FileName { get; set; }
public string ContentType { get; set; }
}
【问题讨论】:
-
查看answer
-
@Pato 不确定你想让我在那里看到什么。可以肯定的是文件大小不是问题,因为我正在测试的文件远低于 100kb。
-
对不起,我的错。你能分享你的发帖请求吗?你的方法好像没问题
-
我通过 Postman 发帖。 POST,form-data,通过 Value 列添加文件。我的另一个队友设置了一个 React 页面来发布,我们得到了相同的结果。