我正在尝试在Asp.net Core中实现文件上传。请参阅下面的endpoit:
[HttpPost("upload")]
[AllowAnonymous]
public async Task<IActionResult> Post(List<IFormFile> files)
{
long size = files.Sum(f => f.Length);
// full path to file in temp location
var filePath = Path.GetTempFileName();
foreach (var formFile in files)
{
if (formFile.Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
await formFile.CopyToAsync(stream);
}
}
}
return Ok(new { count = files.Count, size, filePath });
}
当我使用Postman测试它时,即使我选择了任何文件,我也会得到以下结果:
{
"count": 0,
"size": 0,
"filePath": "/var/folders/24/rmgj9ypj37709tnhxr2hgtfr0000gn/T/tmpX0SwbF.tmp"
}
答案 0 :(得分:2)
这应该引导你朝着正确的方向前进。该方法正在接收jQuery post对象。
[HttpPost]
public async Task<IActionResult> ReadFileHeaders(IFormFile file)
{
if (file != null)
{
using (var stream = new MemoryStream())
{
await file.CopyToAsync(stream);
// Now the file is loaded into the stream variable
}
}
return BadRequest("File required");
}
答案 1 :(得分:0)
代码没有问题。 但是,在使用邮递员(或类似的邮递员)时,您需要在参数Illustration
上使用相同的名称(在您的情况下为“ files”)