合同录入下:
- [房间租赁合同和客户身份证上传失败] 大文件时涉及断点上传
- [网络请求被篡改]
服务端验证请求、计算金额
[应收房款分期计算有误差]
使用BigDecimal [租房合同保存失败,数据不完整] 事务
文件上传 MinIO
安装
参考视频 安装MiniO
启动命令:
minio.exe server D:\tmp\minio
其中 D:\tmp\minio 是图片存储根目录。需要根据自己的情况设置。
添加依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.0.2</version>
</dependency>
上传示例代码
private final String BUCKET_NAME = "2010a";
@PostMapping("/upload")
public Result<String> upload(MultipartFile file) throws InvalidPortException, InvalidEndpointException, IOException, InvalidBucketNameException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
//改写名字,但是不能改写类型;
String name = file.getOriginalFilename(); // a.jpg;
name = name.substring(name.indexOf(".")); //.jpg
name = IdUtil.getSnowflakeNextIdStr()+name;// 随机数 + .jpg
//修改为自己服务器上的key和secret。
MinioClient minioClient = new MinioClient("http://localhost:9000", "ExgAQimtkr6sKLWW", "OyWuId4T1SqzMjJpZ9u8AQX2YL0Rm8Nq");
PutObjectOptions options = new PutObjectOptions(file.getSize(), 11111111);
options.setContentType(file.getContentType());
minioClient.putObject(BUCKET_NAME, name, file.getInputStream(), options);
String url = "http://localhost:9000/"+BUCKET_NAME+"/"+name;
return Result.ok(url);
}
配置servlet支持大文件
spring:
servlet:
multipart:
enabled: true
max-file-size: 500MB
max-request-size: 2048MB