|
|
|
@ -69,11 +69,17 @@ public class MinioServiceImpl implements MinioService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void downloadFile(String fileId, HttpServletResponse response) {
|
|
|
|
|
public void downloadFile(String fileId,boolean printWaterMarket, HttpServletResponse response) {
|
|
|
|
|
MinioFile minioFile = minioFileMapper.selectById(fileId);
|
|
|
|
|
Assert.notNull(minioFile, "文件不存在");
|
|
|
|
|
String fileType = minioFile.getFileType();
|
|
|
|
|
String waterMarkName = StrUtil.format(watermarkTemplate, Map.of("userName", UserUtil.getUser().getUserName()));
|
|
|
|
|
this.downloadFileWithWatermark(fileId, fileType, waterMarkName, response);
|
|
|
|
|
if (printWaterMarket){
|
|
|
|
|
String waterMarkName = StrUtil.format(watermarkTemplate, Map.of("userName", UserUtil.getUser().getUserName()));
|
|
|
|
|
this.downloadFileWithWatermark(fileId, fileType, waterMarkName, response);
|
|
|
|
|
}else {
|
|
|
|
|
minioTemplate.getObject(bucketName, minioFile.getId(),fileType, response);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -92,16 +98,22 @@ public class MinioServiceImpl implements MinioService {
|
|
|
|
|
if (StrUtil.equalsIgnoreCase("pdf", fileType)){
|
|
|
|
|
WatermarkUtil.pdfByText(inputStream, baos, waterMarkName, Map.of());
|
|
|
|
|
response.setContentLengthLong(baos.size());
|
|
|
|
|
response.setContentType(statObjectResponse.contentType());
|
|
|
|
|
if (StrUtil.isEmpty(response.getContentType())){
|
|
|
|
|
response.setContentType(statObjectResponse.contentType());
|
|
|
|
|
}
|
|
|
|
|
response.getOutputStream().write(baos.toByteArray());
|
|
|
|
|
}else if (StrUtil.equalsAnyIgnoreCase(fileType,"jpg", "jpeg", "png","bmp")){
|
|
|
|
|
WatermarkUtil.imageByText(waterMarkName, inputStream, baos, Map.of("formatName", fileType));
|
|
|
|
|
response.setContentType(statObjectResponse.contentType());
|
|
|
|
|
if (StrUtil.isEmpty(response.getContentType())){
|
|
|
|
|
response.setContentType(statObjectResponse.contentType());
|
|
|
|
|
}
|
|
|
|
|
response.setContentLengthLong(baos.size());
|
|
|
|
|
response.getOutputStream().write(baos.toByteArray());
|
|
|
|
|
}else {
|
|
|
|
|
response.setContentLengthLong(statObjectResponse.size());
|
|
|
|
|
response.setContentType(statObjectResponse.contentType());
|
|
|
|
|
if (StrUtil.isEmpty(response.getContentType())){
|
|
|
|
|
response.setContentType(statObjectResponse.contentType());
|
|
|
|
|
}
|
|
|
|
|
IoUtil.copy(inputStream, response.getOutputStream());
|
|
|
|
|
}
|
|
|
|
|
baos.close();
|
|
|
|
|