@PostMapping("upload")
@ApiOperation(value = "上传文件")
public Result<UploadDTO> upload(@RequestParam("file") MultipartFile file) throws Exception {
if (file.isEmpty()) {
return new Result<UploadDTO>().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
}
//上传文件
String extension = FilenameUtils.getExtension(file.getOriginalFilename());
String url = OssFactory.build().uploadSuffix(file.getBytes(), extension);
//获取文件名字
String fileName = file.getOriginalFilename();
//保存文件信息
OssEntity ossEntity = new OssEntity();
ossEntity.setUrl(url);
ossEntity.setCreateDate(new Date());
ossEntity.setFileName(fileName);
ossService.insert(ossEntity);
//文件信息
UploadDTO dto = new UploadDTO();
dto.setUrl(url);
dto.setSize(file.getSize());
dto.setFileName(fileName);
return new Result<UploadDTO>().ok(dto);
}
public String upload(InputStream inputStream, String path) {
try {
//如果BucketName不存在,则创建
boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(config.getMinioBucketName()).build());
if (!found) {
minioClient.makeBucket(MakeBucketArgs.builder().bucket(config.getMinioBucketName()).build());
}
minioClient.putObject(
PutObjectArgs.builder()
.bucket(config.getMinioBucketName())
.object(path)
.contentType("image/jpg")
.contentType("application/pdf")
.contentType("image/gif")
.contentType("image/png")
.contentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document")
.stream(inputStream, inputStream.available(), -1)
.build()
);
} catch (Exception e) {
throw new RenException(ModuleErrorCode.OSS_UPLOAD_FILE_ERROR, e, "");
}
return config.getMinioEndPoint() + "/" + config.getMinioBucketName() + "/" + path;
}
使用minio上传文件
- 在不设置内容类型,都是只能下载后才能查看
- 如果设置内容类型,只有图片能预览,其他文档类型的只能下载,入宫要上传文档格式,也是需要设置文档的格式的,否则就下载不了了