Убедитесь, что вы указали enctype = "multipart / form-data" в форме загрузки из приложения переднего плана.
Ниже приведен пример примера (весенняя загрузка с hibernate / jpa) для сохранения данных изображения в виде байт [] (lob / blob) в mysql базу данных:
Контроллер:
public ResponseEntity<?> uploadFile(@NotBlank @PathVariable String userId,
@RequestParam(value = "profileType", defaultValue = "LOGO", required = false) String profileType,
@RequestParam("avatarFile") MultipartFile avatarFile) {
return userService.storeFile(user, profileType, avatarFile);
}
Служба:
@Override
public userImageData storeFile(user user, String profileType, MultipartFile file) {
log.debug(String.format("Executing < %s.%s#%s()", THIS_CLASS.getPackage().getName(),this.getClass(), new Object() {}.getClass().getEnclosingMethod().getName()));
if(file != null && !isEmpty(file.getOriginalFilename())){
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
try {
if (fileName.contains("..")) {
throw new FileStorageException("Sorry! Filename contains invalid path sequence " + fileName);
}
userImageData userAvatar = new userImageData();
Optional<userImageData> userAvatarOp = imageDataRepository.findByuserImageDatauserEqualsAndImageTypeEquals(user, profileType);
if(userAvatarOp.isPresent()){
userAvatar = userAvatarOp.get();
}
userAvatar.setuserImageDatauser(user);
userAvatar.setImageType(profileType);
userAvatar.setFileName(fileName);
userAvatar.setFileType(file.getContentType());
userAvatar.setData(file.getBytes());
userAvatar.setFileSize(file.getSize());
userAvatar.setUploadId(UUID.randomUUID().toString());
return imageDataRepository.save(userAvatar);
} catch (IOException ex) {
throw new FileStorageException("Could not store file " + fileName + ". Please try again!", ex);
}
}
log.error("Invalid user image data. Please try again!");
return null;
}
Pojo:
@Entity
@Table(name = "user_avatar")
public class userImageData {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator")
@Column(name = "user_avatar_Id")
private String userImageId;
@ManyToOne
@JoinColumn(name = "user_id")
@JsonIgnore
private user userImageDatauser;
private String imageType;
private String fileName;
private String fileType;
private Long fileSize;
@Lob
private byte[] data;
@Transient
private String fileAccessUri;
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator")
private String uploadId;
}