gpt4 book ai didi

java - 如何将 MultipartFile 转换为所需类型 byte[]

转载 作者:行者123 更新时间:2023-12-02 09:56:52 35 4
gpt4 key购买 nike

我正在使用 Spring Boot 来处理 Spring Data-Jpa。我有一个多部分表单,用于将文件上传到数据库,其中包含其他字段,例如(名字、姓氏、电子邮件、照片)。但我不断收到此错误消息,将多部分文件转换为所需的 byte[] 类型。如何将图像文件从多部分文件转换为 byte[] 类型?

这是我的 Controller 类:

    @PostMapping("/save")
public String saveUserWithPhoto(@ModelAttribute("user") User user,
@RequestParam("file") MultipartFile file) throws IOException {
String fileName = StringUtils.cleanPath(file.getOriginalFilename());

if (!(fileName == null) || fileName.contains("..")) {
byte[] photoBytes = file.getBytes();
user.setPhoto(photoBytes);
userService.saveUserWithPhoto(user);
return "redirect:/profile";
}
.......
return "redirect:/new-user";

}

这是我的服务类:

  @Override
public void saveUserWithPhoto(User theUser){
userRepository.save(theUser);
}

这是我的实体类:

@Entity
@Table(name = "users")
public class User{

@Id
@GeneratedValue
private long id;

@Column(name = "first_name")
private String firstName;

@Column(name = "last_name")
private String lastName;

@Column(name = "email")
private String email;

@Lob
@Column(name="photo")
private byte[] photo;

}

最佳答案

MultipartFile 包含内容文件的字节数组。您可以使用 getBytes() 方法。

application.properties中添加:

spring.servlet.multipart.enabled=true

或者使用YAML可以添加:

spring:
servlet:
multipart:
enabled: true

并且可以从 MultipartFile 获取字节数组,例如:

MultipartFile  file;
//for your segment file fill from client side(in request)
byte [] content = file.getBytes();

关于java - 如何将 MultipartFile 转换为所需类型 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935242/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com