Commit 562f4cb953bccd1b4be474441e5e36011941b945

Authored by timfruit
1 parent 7089ef76

根据艿艿的提示修改

src/main/java/cn/iocoder/dashboard/modules/infra/controller/doc/InfDbDocController.java
@@ -48,9 +48,7 @@ public class InfDbDocController { @@ -48,9 +48,7 @@ public class InfDbDocController {
48 48
49 @GetMapping("/export-html") 49 @GetMapping("/export-html")
50 @ApiOperation("导出html格式的数据文档") 50 @ApiOperation("导出html格式的数据文档")
51 - @ApiImplicitParams({  
52 - @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class),  
53 - }) 51 + @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class)
54 public void exportHtml(@RequestParam(defaultValue = "true") Boolean deleteFile, 52 public void exportHtml(@RequestParam(defaultValue = "true") Boolean deleteFile,
55 HttpServletResponse response) throws IOException { 53 HttpServletResponse response) throws IOException {
56 doExportFile(EngineFileType.HTML, deleteFile, response); 54 doExportFile(EngineFileType.HTML, deleteFile, response);
@@ -58,9 +56,7 @@ public class InfDbDocController { @@ -58,9 +56,7 @@ public class InfDbDocController {
58 56
59 @GetMapping("/export-word") 57 @GetMapping("/export-word")
60 @ApiOperation("导出word格式的数据文档") 58 @ApiOperation("导出word格式的数据文档")
61 - @ApiImplicitParams({  
62 - @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class),  
63 - }) 59 + @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class)
64 public void exportWord(@RequestParam(defaultValue = "true") Boolean deleteFile, 60 public void exportWord(@RequestParam(defaultValue = "true") Boolean deleteFile,
65 HttpServletResponse response) throws IOException { 61 HttpServletResponse response) throws IOException {
66 doExportFile(EngineFileType.WORD, deleteFile, response); 62 doExportFile(EngineFileType.WORD, deleteFile, response);
@@ -68,9 +64,7 @@ public class InfDbDocController { @@ -68,9 +64,7 @@ public class InfDbDocController {
68 64
69 @GetMapping("/export-markdown") 65 @GetMapping("/export-markdown")
70 @ApiOperation("导出markdown格式的数据文档") 66 @ApiOperation("导出markdown格式的数据文档")
71 - @ApiImplicitParams({  
72 - @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class),  
73 - }) 67 + @ApiImplicitParam(name = "deleteFile", value = "是否删除在服务器本地生成的数据库文档", example = "true", dataTypeClass = Boolean.class)
74 public void exportMarkdown(@RequestParam(defaultValue = "true") Boolean deleteFile, 68 public void exportMarkdown(@RequestParam(defaultValue = "true") Boolean deleteFile,
75 HttpServletResponse response) throws IOException { 69 HttpServletResponse response) throws IOException {
76 doExportFile(EngineFileType.MD, deleteFile, response); 70 doExportFile(EngineFileType.MD, deleteFile, response);
@@ -81,12 +75,13 @@ public class InfDbDocController { @@ -81,12 +75,13 @@ public class InfDbDocController {
81 String docFileName = DOC_FILE_NAME + "_" + IdUtil.fastSimpleUUID(); 75 String docFileName = DOC_FILE_NAME + "_" + IdUtil.fastSimpleUUID();
82 String filePath = doExportFile(fileOutputType, docFileName); 76 String filePath = doExportFile(fileOutputType, docFileName);
83 String downloadFileName = DOC_FILE_NAME + fileOutputType.getFileSuffix(); //下载后的文件名 77 String downloadFileName = DOC_FILE_NAME + fileOutputType.getFileSuffix(); //下载后的文件名
84 - // 读取,返回  
85 - //IoUtil.readBytes 直接读取FileInputStream 不会关闭流,有bug,所以用BufferedInputStream包装一下, 关闭流后才能删除文件  
86 - byte[] content = IoUtil.readBytes(new BufferedInputStream(new FileInputStream(filePath)));  
87 - //这里不用hutool工具类,它的中文文件名编码有问题,导致在浏览器下载时有问题  
88 - ServletUtils.writeAttachment(response, downloadFileName, content);  
89 - handleDeleteFile(deleteFile, filePath); 78 + try {
  79 + // 读取,返回
  80 + //这里不用hutool工具类,它的中文文件名编码有问题,导致在浏览器下载时有问题
  81 + ServletUtils.writeAttachment(response, downloadFileName, FileUtil.readBytes(filePath));
  82 + }finally {
  83 + handleDeleteFile(deleteFile, filePath);
  84 + }
90 } 85 }
91 86
92 /** 87 /**