response文件流是预览还是下载的区别
加上
response.setHeader("Content-Disposition", getFileName(file, request));
response.setContentType("application/force-download");
表示只能下载 不能预览
完整的下载代码如下:
@ApiOperation("下载文件")
@GetMapping(value = "/downLoad", name = "下载文件")
public void downLoad(@RequestParam String fileUrl, HttpServletRequest request, HttpServletResponse response) {
File file = fileService.selectFileByFileUrl(fileUrl);
minioUtil.downResponse(file, request, response);
}
@SneakyThrows
public void downResponse(com.ruoyi.bridge.manager.domain.File file, HttpServletRequest request, HttpServletResponse response) {
if (file == null || file.getFileUrl() == null) {
return;
}
GetObjectResponse object = minioClient.getObject(GetObjectArgs.builder()
.bucket(minioConfig.getBucketName())
.object(file.getFileUrl())
.build());
StatObjectResponse objectInfo = minioClient.statObject(StatObjectArgs.builder()
.bucket(minioConfig.getBucketName())
.object(file.getFileUrl())
.build());
// response.setHeader("Content-Disposition", getFileName(file, request));
// response.setContentType("application/force-download");
// todo lcx contentType
// String contentType = MediaTypeFactory.getMediaType(file.getFileUrl()).orElse(MediaType.APPLICATION_OCTET_STREAM).toString();
// response.setContentType(contentType);
response.setContentLengthLong(objectInfo.size());
response.setContentType(objectInfo.contentType());
// response.setCharacterEncoding("UTF-8");
IOUtils.copy(object, response.getOutputStream());
}