415 Неподдерживаемый тип носителя
Тип контента «application/octet-stream» не поддерживается.
мой контроллер
Код: Выделить всё
@PostMapping(consumes = {"multipart/form-data"})
public ResponseEntity createProperty(
@RequestPart(value = "property") @Valid PropertyRequestDto requestDto,
@RequestPart(value = "images", required = false) MultipartFile[] images) throws IOException {
if (images != null && images.length > 0) {
List uploadedUrls = cloudinaryService.uploadImages(images);
requestDto.setImages(uploadedUrls);
}
PropertyResponseDto responseDto = propertyService.createProperty(requestDto);
URI location = ServletUriComponentsBuilder
.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(responseDto.getId())
.toUri();
return ResponseEntity.created(location).body(responseDto);
}
Код: Выделить всё
public class CloudinaryService {
private final Cloudinary cloudinary;
public String uploadImage(MultipartFile file) throws IOException {
Map uploadResult = cloudinary.uploader().upload(file.getBytes(), ObjectUtils.asMap(
"use_filename", true,
"unique_filename", false,
"overwrite", true
));
return uploadResult.get("secure_url").toString();
}
public List uploadImages(MultipartFile[] files) throws IOException {
List urls = new ArrayList();
for (MultipartFile file : files) {
urls.add(uploadImage(file));
}
return urls;
}
}
Код: Выделить всё
@ElementCollection
@CollectionTable(name = "property_images", joinColumns = @JoinColumn(name = "property_id"))
@Column(name = "image_url")
private List images = new ArrayList();
Ключ
Тип
Значение
свойство
текст
(тело JSON)
изображения
файл
*.jpg изображения
Но всякий раз, когда я включаю images, Spring выдает 415 Unsupported Media Type.
Если я удалю поле изображений, все будет работать.
Что я пробовал
- Добавление потребляет = {"multipart/form-data" на контроллере
- Убедимся, что Postman использует multipart/form-data
Подробнее здесь: https://stackoverflow.com/questions/798 ... in-postman
Мобильная версия