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