Я новичок в бэкэнд-разработке и Gettig 415 Неподдерживаемый носитель Type в составном API, написанном на ядре .net. Я прикрепил изображение почтальона для справки. Заранее спасибо.
[HttpPost]
[Route("uploadFiles")]
public async Task<ActionResult<IEnumerable<status>>> UploadFilesAsync([FromBody] UploadFile uploadFile)
{
using (var client = new AmazonS3Client("Access key", "Secret key", Region))
{
status s = new status();
try
{
if (uploadFile.Image != null && uploadFile.Image.Length > 0 && uploadFile.Name != null && uploadFile.Name != "")
{
using (var fileStream = new FileStream(uploadFile.Image.FileName, FileMode.Create))
{
uploadFile.Image.CopyTo(fileStream);
var uploadRequest = new TransferUtilityUploadRequest
{
InputStream = fileStream,
Key = uploadFile.Name,
BucketName = "needbucket",
CannedACL = S3CannedACL.PublicRead
};
var fileTransferUtility = new TransferUtility(client);
await fileTransferUtility.UploadAsync(uploadRequest);
}
s.Status = "1";
s.resone = "File uploded sucesefully.";
return Ok(s);
}
else
{
s.Status = "0";
s.resone = "Image and Image name canot be blank";
return Ok(s);
}
}
catch (Exception e)
{
s.Status = "0";
s.resone = "Somthing went wrong." + e.Message;
return Ok(s);
}
}
}





1. Измените свой [FromBody] на [FromForm]
2. На вкладке «Тело» выберите параметр данных формы. Затем наведите указатель мыши на строку, чтобы появилось раскрывающееся меню с текстом. Щелкните этот раскрывающийся список и установите для него значение «Файл».
Ниже приведена рабочая демонстрация, вы можете обратиться к ней.
public class UploadFile
{
public string Name { get; set; }
public IFormFile Image { get; set; }//this is my key name
}
Результат:
Я использовал [FromBody]. После изменения на [FromForm] это сработало. Спасибо @Qing Guo.
Измените
[FromBody]на[FromForm].