优化审批数据推送展示内容和数据下载
This commit is contained in:
@@ -97,7 +97,7 @@ public interface IMinioService {
|
||||
* @param encodedFileName
|
||||
* @param contentType
|
||||
*/
|
||||
void streamFile(String objectName, String bucketName, HttpServletResponse response, String encodedFileName, String contentType)throws Exception ;
|
||||
void streamFile(String objectName, String bucketName, HttpServletResponse response, String originalName, String contentType)throws Exception ;
|
||||
|
||||
InputStream getMinioInputStream(String objectName, String bucketName);
|
||||
|
||||
|
||||
@@ -82,6 +82,7 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.Executor;
|
||||
@@ -1302,8 +1303,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
return;
|
||||
}*/
|
||||
// 从MinIO下载文件
|
||||
String encodedFileName = URLEncoder.encode(fileMetadataInfo.getOriginalName(), StandardCharsets.UTF_8);
|
||||
minioService.streamFile(fileObjectKey, fileMetadataInfo.getBucketName(), response, encodedFileName, "");
|
||||
minioService.streamFile(fileObjectKey, fileMetadataInfo.getBucketName(), response, fileMetadataInfo.getOriginalName(), "");
|
||||
} catch (Exception e) {
|
||||
log.error("下载文件失败", e);
|
||||
try {
|
||||
@@ -1573,7 +1573,11 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
tempFileMetadataInfo.setAnalysisDirectionId(req.getAnalysisDirectionId());
|
||||
tempFileMetadataInfo.setRemarks(req.getRemarks());
|
||||
tempFileMetadataInfo.setSimulationPoolInfoList(req.getSimulationPoolInfoList());
|
||||
tempFileMetadataInfo.setCreateTime(fileMetadataInfo.getCreateTime());
|
||||
tempFileMetadataInfo.setUpdateTime(fileMetadataInfo.getCreateTime());
|
||||
tempFileMetadataInfo.setUpdateTime(LocalDateTime.now());
|
||||
fileMetadataInfo.setTempMetadata(JSONObject.toJSONString(tempFileMetadataInfo));
|
||||
fileMetadataInfo.setUpdateTime(LocalDateTime.now());
|
||||
|
||||
//发起审批
|
||||
FileApproveRequestBuilder updateFileMetaIntoApproveRequestBuilder = FileApproveRequestBuilder.builder()
|
||||
|
||||
@@ -430,7 +430,7 @@ public class MinioService implements IMinioService {
|
||||
|
||||
|
||||
|
||||
public void streamFile(String objectName, String bucketName, HttpServletResponse response, String encodedFileName, String contentType) throws Exception {
|
||||
public void streamFile(String objectName, String bucketName, HttpServletResponse response, String originalName, String contentType) throws Exception {
|
||||
StatObjectResponse stat = minioClient.statObject(
|
||||
StatObjectArgs.builder()
|
||||
.bucket(getBucketName(bucketName))
|
||||
@@ -445,15 +445,17 @@ public class MinioService implements IMinioService {
|
||||
.build());
|
||||
ReadableByteChannel inChannel = Channels.newChannel(stream);
|
||||
WritableByteChannel outChannel = Channels.newChannel(response.getOutputStream())) {
|
||||
|
||||
|
||||
String encodeFileName = URLEncoder.encode(originalName, "UTF-8");
|
||||
encodeFileName = encodeFileName.replaceAll("\\+", "%20");
|
||||
response.reset();
|
||||
String mediaType = org.apache.commons.lang3.StringUtils.isBlank(contentType) ?
|
||||
MediaType.APPLICATION_OCTET_STREAM_VALUE : contentType;
|
||||
response.setContentType(mediaType);
|
||||
|
||||
String encodeFileName = URLEncoder.encode(encodedFileName, "UTF-8");
|
||||
encodeFileName = encodeFileName.replaceAll("\\+", "%20");
|
||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=\"" + encodeFileName + "\";filename*=utf-8");
|
||||
response.setHeader(HttpHeaders.ACCEPT_RANGES, "bytes");
|
||||
response.addHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(fileSize));
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.addHeader("Content-Disposition", "attachment;filename=\"" + encodeFileName + "\";filename*=utf-8");
|
||||
response.addHeader("Content-Length", "" + fileSize);
|
||||
response.addHeader("Content-Type", mediaType);
|
||||
|
||||
ByteBuffer buffer = ByteBuffer.allocateDirect(minioConfig.getDirectMemory() <= NumberConstants.ZERO ?
|
||||
DEFAULT_BUFFER_SIZE : minioConfig.getDirectMemory());
|
||||
|
||||
Reference in New Issue
Block a user