Browse Source

加密下载

master
zhouyl 1 year ago
parent
commit
6adc120d66
  1. 2
      tp-admin/src/main/java/com/inscloudtech/web/controller/system/SysOssController.java
  2. 7
      tp-admin/src/main/java/com/inscloudtech/web/controller/system/ToolManageController.java
  3. 8
      tp-system/src/main/java/com/inscloudtech/system/service/impl/SysOssServiceImpl.java

2
tp-admin/src/main/java/com/inscloudtech/web/controller/system/SysOssController.java

@ -87,7 +87,7 @@ public class SysOssController extends BaseController {
*
* @param ossId OSS对象ID
*/
@SaCheckPermission("system:oss:download")
// @SaCheckPermission("system:oss:download")
@GetMapping("/download/{ossId}")
public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
iSysOssService.download(ossId,response);

7
tp-admin/src/main/java/com/inscloudtech/web/controller/system/ToolManageController.java

@ -23,6 +23,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@ -113,7 +114,11 @@ public class ToolManageController extends BaseController {
*/
@ApiEncrypt
@PostMapping("/downloadTool")
public void downloadTool(@RequestBody DownloadToolRequest downloadToolRequest , HttpServletResponse response) throws IOException {
public void downloadTool(@RequestBody DownloadToolRequest downloadToolRequest , HttpServletResponse response, HttpServletRequest request) throws IOException {
String responseType = request.getHeader("responseType");
if (StrUtil.isNotEmpty(responseType)){
response.setHeader("response-type", responseType);
}
iToolManageService.downloadByToolName(downloadToolRequest,response);
}

8
tp-system/src/main/java/com/inscloudtech/system/service/impl/SysOssServiceImpl.java

@ -44,7 +44,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
@ -128,7 +127,8 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
throw new ServiceException("文件数据不存在!");
}
this.downloadLocal(sysOss.getFileName(),sysOss.getOriginalName(),response,false);
/* FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName());
/*FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName());
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
OssClient storage = OssFactory.instance(sysOss.getService());
try(InputStream inputStream = storage.getObjectContent(sysOss.getUrl())) {
@ -140,6 +140,8 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
}*/
}
@Override
public void downloadWithCreateBy(Long ossId, String CreateBy, HttpServletResponse response) throws IOException {
SysOssVo sysOss = baseMapper.selectVoOne(new LambdaQueryWrapper<SysOss>()
@ -157,8 +159,8 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
throw new RuntimeException(StrUtil.format("文件名称({})非法,不允许下载。 ", fileName));
}
String filePath = ProjectConfig.getUploadPath() + fileName;
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, originalName);
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
if(isDecrypt){
DocumentEncryptionUtil.decryptFile4Download(filePath,response.getOutputStream());
}else {

Loading…
Cancel
Save