从邮递员上传文件时 IFormFile 为空值
IFormFile is null value when uploading file from postman
我尝试测试通过邮递员将 IFormFile 上传到网络 API,错误显示 IFormFile 是空值
[HttpPost]
public void Post([FromForm] Product product,IFormFile file)
{
var imagePath = Path.Combine(_hostEnvironment.WebRootPath, "images", file.FileName);
var streamImage = new FileStream(imagePath, FileMode.Create);
file.CopyTo(streamImage);
var prod = new Product
{
Name = product.Name,
Description=product.Description,
Price=product.Price,
BasePrice=product.BasePrice,
Image=imagePath,
CategoryId = product.CategoryId,
};
_repository.AddProduct(prod);
}
邮递员请求
响应显示我的 IFromFile 是一个空值,但我无法找出我遗漏的地方。
你能帮助我吗?谢谢。
这一行:
public void Post([FromForm] Product product, IFormFile file)
需要改成这样:
public void Post(
[FromForm] Product product, [FromForm(Name = "Image")] IFormFile file)
您的邮递员将表单的文件 属性 名称显示为 "Image"
而不是 "file"
。您的参数名称 必须 匹配表单名称(不区分大小写)。
您也可以这样做:
public void Post([FromForm] Product product, [FromForm] IFormFile image)
我尝试测试通过邮递员将 IFormFile 上传到网络 API,错误显示 IFormFile 是空值
[HttpPost]
public void Post([FromForm] Product product,IFormFile file)
{
var imagePath = Path.Combine(_hostEnvironment.WebRootPath, "images", file.FileName);
var streamImage = new FileStream(imagePath, FileMode.Create);
file.CopyTo(streamImage);
var prod = new Product
{
Name = product.Name,
Description=product.Description,
Price=product.Price,
BasePrice=product.BasePrice,
Image=imagePath,
CategoryId = product.CategoryId,
};
_repository.AddProduct(prod);
}
邮递员请求
响应显示我的 IFromFile 是一个空值,但我无法找出我遗漏的地方。 你能帮助我吗?谢谢。
这一行:
public void Post([FromForm] Product product, IFormFile file)
需要改成这样:
public void Post(
[FromForm] Product product, [FromForm(Name = "Image")] IFormFile file)
您的邮递员将表单的文件 属性 名称显示为 "Image"
而不是 "file"
。您的参数名称 必须 匹配表单名称(不区分大小写)。
您也可以这样做:
public void Post([FromForm] Product product, [FromForm] IFormFile image)