大佬教程收集整理的这篇文章主要介绍了在 Asp.net Core Web Api 和 Postman 中使用两个不同的密钥上传文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个表(课程),Coursetable的两列(Imagename和filename)应该有Course Image和Course file,我可以成功发布文件,但图像总是返回null。我的问题是,我如何发布两个文件,用两个不同的键?如果我想为 Coursefile 发送 1 个以上的文件,我该怎么做?
public class fileUploadAPI
{
public IFormfile filename { get; set; }
public IFormfile Imagename { get; set; }
public String courseDto { get; set; }
}
[httpPost]
public async Task<APIResult<CourseResultDtoForPublic>> Create([FromForm] fileUploadAPI objfile,CancellationToken cancellationToken)
{
await Uploadfile(objfilE);
CourseDto courseDtoDeserialize = JsonConvert.DeserializeObject<CourseDto>(objfile.courseDto);
courseDtoDeserialize.filename = objfile.filename.ToString();
courseDtoDeserialize.Imagename = objfile.Imagename.ToString();
var model = courseDtoDeserialize.ToEntity(mapper);
await courseRepository.AddAsync(model,courseDtoDeserialize.MajorID,cancellationToken);
var dto = await courseRepository.tableAsnoTracking.ProjectTo<CourseResultDtoForPublic>(mapper.ConfigurationProvIDer)
.FirstOrDefaultAsync(c => c.ID == model.ID,cancellationToken);
return dto;
}
[httpPost]
[Route("/API/Course/Uploadfile")]
//[requestFormlimits(MultipartbodyLengthlimit = 209715200)]
//[requestSizelimit(209715200)]
public async Task<String> Uploadfile([FromForm]fileUploadAPI objfilE)
{
if (objfile.filename.Length > 0)
{
try
{
if (!Directory.Exists(_environment.WebrootPath + "\\uploads\\"))
{
Directory.CreateDirectory(_environment.WebrootPath + "\\uploads\\");
}
using (fileStream filestream = System.IO.file.Create(_environment.WebrootPath + "\\uploads\\" + objfile.filename.fileName))
{
objfile.filename.copyTo(filestream);
filestream.Flush();
return "\\uploads\\" + objfile.filename.filename;
}
}
catch (Exception eX)
{
return ex.ToString();
}
}
if (objfile.Imagename.Length > 0)
{
try
{
if (!Directory.Exists(_environment.WebrootPath + "\\uploads/CourseImages\\"))
{
Directory.CreateDirectory(_environment.WebrootPath + "\\uploads/CourseImages\\");
}
using (fileStream filestream = System.IO.file.Create(_environment.WebrootPath + "\\uploads/CourseImages\\" + objfile.Imagename.fileName))
{
objfile.Imagename.copyTo(filestream);
filestream.Flush();
return "\\uploads/CourseImages\\" + objfile.Imagename.filename;
}
}
catch (Exception eX)
{
return ex.ToString();
}
}
else
{
return "Unsuccessful";
}
}
public IFormFile Imagename { get;放; }
CourseDto
和 Filename
参数从邮递员绑定是正确的,但 Imagename 向我的操作参数返回空值
请注意,模型绑定会从请求中的值中查找与 property_name(或 parameter_name)的匹配项,在您的屏幕截图中,我们可以发现您使用 ImagName
指定键,如下所示,而不是 {{1 }},导致它不能很好地将值绑定到属性。
请尝试在 postman 中将其更改为 Imagename
,然后它应该可以正常工作。
有关模型绑定如何工作的更多信息,请查看此文档:
https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-5.0
以上是大佬教程为你收集整理的在 Asp.net Core Web Api 和 Postman 中使用两个不同的密钥上传文件全部内容,希望文章能够帮你解决在 Asp.net Core Web Api 和 Postman 中使用两个不同的密钥上传文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。