|
@@ -16,6 +16,7 @@ import com.dragonsoft.duceap.commons.util.string.StringUtils;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import org.apache.commons.io.IOUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.boot.system.ApplicationHome;
|
|
@@ -91,8 +92,8 @@ public class DownloadController {
|
|
|
"externalPersonnel 外部人员, manager 管理员, govUser 政府人员, serviceResource 服务资源,appFun 功能资源, apply 应用资源," +
|
|
|
"org 机构, user 人员 dataLevel 数据分级 dataSec 数据安全级别",
|
|
|
required = true)
|
|
|
- @GetMapping(value = "/downTemplate")
|
|
|
- public HttpServletResponse downTemplate(@RequestParam("type") String type, HttpServletResponse response) {
|
|
|
+ @GetMapping(value = "/downTemplate", produces = "application/octet-stream")
|
|
|
+ public void downTemplate(@RequestParam("type") String type, HttpServletResponse response) {
|
|
|
ApplicationHome home = new ApplicationHome(getClass());
|
|
|
File sysfile = home.getSource();
|
|
|
String jarPath = sysfile.getPath();//classes路径
|
|
@@ -126,18 +127,15 @@ public class DownloadController {
|
|
|
//授权主客体管理_应用资源模板
|
|
|
response = down(response, DATA_SEC_TEMPLATE_RLPATH);
|
|
|
}
|
|
|
- return response;
|
|
|
}
|
|
|
|
|
|
private HttpServletResponse down(HttpServletResponse response, String path) {
|
|
|
+ InputStream fis = null;
|
|
|
+ OutputStream out = null;
|
|
|
try {
|
|
|
// 以流的形式下载文件。
|
|
|
Resource resource = new ClassPathResource(path);
|
|
|
- resource.getInputStream();
|
|
|
- InputStream fis = resource.getInputStream();
|
|
|
- byte[] buffer = new byte[fis.available()];
|
|
|
- fis.read(buffer);
|
|
|
- fis.close();
|
|
|
+ fis = resource.getInputStream();
|
|
|
// 清空response
|
|
|
response.reset();
|
|
|
// 设置response的Header
|
|
@@ -169,13 +167,13 @@ public class DownloadController {
|
|
|
}
|
|
|
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
|
|
|
response.addHeader("Content-Length", "" + resource.contentLength());
|
|
|
- OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
|
|
|
+ out = new BufferedOutputStream(response.getOutputStream());
|
|
|
response.setContentType("application/octet-stream");
|
|
|
- outputStream.write(buffer);
|
|
|
- outputStream.flush();
|
|
|
- outputStream.close();
|
|
|
+ IOUtils.copy(fis,out);
|
|
|
} catch (IOException ex) {
|
|
|
ex.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ IOUtils.closeQuietly(fis, out);
|
|
|
}
|
|
|
return response;
|
|
|
}
|