spring-data-jpa 如何 在 spring boot rest api 应用 程序 中 存储 配置 文件 图片

vecaoik1  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(171)

我 正在 做 springboot 项目 。 我 需要 在 后台 项目 中 存储 用户 的 详细 信息 以及 其 配置 文件 图片 。 下面 是 我 的 实体 类 :

@Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Entity
    @Table(name = "users")
    public class User {
       @Id
       @Column(name = "id")
       @GeneratedValue(strategy = GenerationType.IDENTITY)
       private Long id;

       @Column(name = "uuid")
       private UUID uuid;

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

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

       @Column(name = "middle_name", nullable = true)
       private String middleName;

       @Column(name = "employee_id", nullable = false)
       private String employeeId;

       @Column(name = "photo", nullable = true)
       private String profilePicture;

       @Column(name = "date_of_birth", nullable = false)
       @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
       private Date dateOfBirth;

       @Column(name = "email", nullable = false)
       private String email;

       @Column(name = "phone_number", nullable = false)
       private String phone;

       @Column(name = "admin")
       private Boolean admin;
   }

中 的 每 一 个
控制 器 :

@RestController
    @RequestMapping("/users")
    public class UserController {

            @Autowired
            private ModelMapper modelMapper;
            private UserService service;

            UserController(UserService service){
                 this.service = service;
            }

            @GetMapping("/{uuid}")
            @ResponseBody
            @ResponseStatus(HttpStatus.OK)
            public UserDTO getUserById(@PathVariable UUID uuid) throws ResourceNotFoundException{
                   return service.getUserById(uuid);
            }

            @PostMapping("")
            @ResponseStatus(HttpStatus.CREATED)
            public User save(@RequestBody User user) throws ResourceAlreadyExistsException{
                User user = dtoToEntity(userDTO);
                return service.saveUser(user);
            }

    }

格式
我 检查 了 Multipartfile 来 处理 保存 文件 。 但是 我 必须 创建 单独 的 控制 器 和 服务 类 来 存储 文件 。 有 没 有 办法 接收 用户 身体 的 个人 资料 图片 并 保存 它 , 也 在 使用 GET 方法 时 检索 它 ?

tnkciper

tnkciper1#

您可以将配置文件图片存储为Base64编码字符串并进行传输。Base64是一种广为人知的二进制到文本的编码方案,并且得到了广泛的支持。缺点是,与二进制相比,它确实增加了33%的存储空间需求。
我假设你有一个用JavaScript制作的客户端。关于用JavaScript编码和解码Base64,请参见下面的StackOverflow答案:https://stackoverflow.com/a/247261/1333157
浏览器甚至可以像现在这样呈现Base64编码的图像。例如,参见此处:https://css-tricks.com/data-uris/

相关问题