当我从Postman向控制器发送文件时,对象 file 始终为空。
[Route("api/[controller]")]
[ApiController]
public class FileUploadController : BaseApiController<FileUploadController>
{
public FileUploadController(ILogger<FileUploadController> logger) : base(logger) { }
[HttpPost]
[DisableRequestSizeLimit]
public async Task<IActionResult> Post(IFormFile file)
{
MemoryStream ms = new MemoryStream(new byte[file.Length]);
在邮递员处,我将POST https://localhost:5001/api/FileUpload设置为无参数,无标题,将主体设置为表单数据和键:file,value我选择一个文件。发送。
在最后一行上方代码中的断点处,对象 file 始终为 null 。 如何将文件放入控制器?
答案 0 :(得分:4)
第一个解决方案:
如果要使用form-data
参数,还必须按照以下步骤在邮递员IFormFile
中输入输入参数的名称:
第二种解决方案:
使用.net Core 2.X从HttpContext
获取文件:
public async Task<IActionResult> Post()
{
IFormFile file = HttpContext.Request.Form.Files[0];
}
答案 1 :(得分:0)
尝试一下:
在类中添加IFormFile
类型的属性,例如:
public class FileData
{
public IFormFile file { get; set; }
}
将该类添加为输入参数。
public async Task<IActionResult> Post([FromForm] FileData fileData)
{
// fileData.file
}
您将在fileData.file
答案 2 :(得分:0)
唯一的问题是 F ile 而不是 f <如KDM所述,按Postman Body键上的em> ile 。