【发布时间】:2019-07-28 10:39:09
【问题描述】:
我在学习课程时正在构建一个 .net 核心 WebApi。我正在尝试上传照片,但我不断收到错误
415 - 不支持的文件类型
这里是相关的控制器
[HttpPost]
public async Task<IActionResult> AddPhotoForUser(int userId, [FromForm] PhotoForCreationDto photoForCreationDTO)
{
if(userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
return Unauthorized();
var userFromRepo = await _repo.GetUser(userId);
var file = photoForCreationDTO.File;
var uploadResult = new ImageUploadResult();
if(file.Length > 0)
{
using(var stream = file.OpenReadStream())
{
var uploadParams = new ImageUploadParams()
{
File = new FileDescription(file.Name, stream),
Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face")
};
uploadResult = _cloudinary.Upload(uploadParams);
}
}
photoForCreationDTO.Url = uploadResult.Uri.ToString();
photoForCreationDTO.PublicId = uploadResult.PublicId;
var photo =_mapper.Map<Photo>(photoForCreationDTO);
if(!userFromRepo.Photos.Any(u => u.IsMain))
photo.IsMain = true;
userFromRepo.Photos.Add(photo);
if(await _repo.SaveAll())
{
var photoToReturn = _mapper.Map<PhotoForReturnDto>(photo);
return CreatedAtRoute("GetPhoto", new { id = photo.Id}, photoToReturn);
}
return BadRequest("Could not add the photo");
}
我不知道错误是什么?有什么想法吗?
【问题讨论】:
-
您是否检查过您的管道中有哪些类型的媒体类型格式化程序?
-
我在哪里检查?我是 .net 核心的新手!
-
这是一个很大的话题。您可能想要搜索“asp.net 核心媒体类型格式化程序”。我认为您在这里提供的信息不足以回答这个问题。很可能上面的代码都没有被执行。