我的API如下。我正在尝试使用邮递员发布模型值和图像文件。但是,模型值未绑定。如何使用POSTMAN在图片文件中发布json数据?
[HttpPost]
[Route("api/images_upload")]
public IActionResult UploadImages([FromForm] Chapter chapter,IFormFile file)
{
try
{
var fileName = Path.GetFileName(file.FileName);
var absoluteFileName = fileName.Replace(fileName, Guid.NewGuid().ToString());
var extension = Path.GetExtension(fileName);
var fullFileName = string.Concat(absoluteFileName, extension);
var physicalPath = Path.Combine(HostingEnvironment.WebRootPath, "images", fullFileName);
file.CopyTo(new FileStream(physicalPath, FileMode.Create));
return Content("Images Uploaded");
}
catch (Exception ex)
{
throw ex;
}
}
答案 0 :(得分:1)
要发布Chapter
和IFormFile file
,您可以尝试在PostMan中使用form-data
进行发布。
要发布IFormFile
,您不能通过application/json
内容类型进行传递。并且在发布form-data
时,请勿将Content-Type
添加为application/json
,否则,.net核心将尝试JsonFormatter
将请求主体绑定到模型而不是{{1 }},则FromForm
将为空。
这是一个工作正常的PostMan演示。
请注意,没有chapter
标头。
答案 1 :(得分:0)
以上都不适合我。但是我的问题已解决,方法是为该类型创建一个新类,然后使用Bind属性。
[Bind]
public class FileApplication
{
public IFormFile Files { get; set; }
public long Id { get; set; }
}