diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index 7be076571..ed55f5f39 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -90,6 +90,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/auth/2step-code", "anon");//登录验证码 filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览 + filterChainDefinitionMap.put("/sys/common/download/**", "anon");//文件预览 filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件 filterChainDefinitionMap.put("/", "anon"); filterChainDefinitionMap.put("/doc.html", "anon"); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java index af3f22c55..797f7bc32 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java @@ -180,73 +180,73 @@ public class CommonController { * @param request * @param response */ - @GetMapping(value = "/download/{id}") - public void view(@PathVariable String id,HttpServletRequest request, HttpServletResponse response) { - // 查询数据表数据是否存在 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(OSSFile::getId,id); - OSSFile ossFile = ossFileService.getOne(queryWrapper); - if( null == ossFile){ - throw new JeroBootException("文件不存在.."); - } - String fileUrl = ossFile.getUrl(); - InputStream inputStream = null; - OutputStream outputStream = null; - try { - String fileName = ""; - if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){ - //本地下载 - String filePath = uploadpath + File.separator + fileUrl; - File file = new File(filePath); - if(!file.exists()){ - response.setStatus(404); - throw new RuntimeException("文件不存在.."); - } - // 文件名称 - fileName = file.getName(); - inputStream = new BufferedInputStream(new FileInputStream(filePath)); - }else if(CommonConstant.UPLOAD_TYPE_MINIO.equals(uploadType)){ - // minio 下载 - // 通过MinioUtil查询时 只需要桶后面的路径 - String minioUrl = MinioUtil.getMinioUrl(); - // Linux/unix 系统下文件路径分隔符为"/" 获取minio与存储桶的路径 - minioUrl = minioUrl + MinioUtil.getBucketName() + "/"; - String url = fileUrl.replace(minioUrl, ""); - // 文件名称 - fileName = ossFile.getFileName(); - inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); - } - response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1")); -// response.setContentType("application/force-download");// 设置强制下载不打开 - outputStream = response.getOutputStream(); - byte[] buf = new byte[1024]; - int len; - while ((len = inputStream.read(buf)) > 0) { - outputStream.write(buf, 0, len); - } - response.flushBuffer(); - } catch (IOException e) { - log.error("预览文件失败" + e.getMessage()); - response.setStatus(404); - e.printStackTrace(); - } finally { - if (inputStream != null) { - try { - inputStream.close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - if (outputStream != null) { - try { - outputStream.close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - } - - } +// @GetMapping(value = "/download/{id}") +// public void view(@PathVariable String id,HttpServletRequest request, HttpServletResponse response) { +// // 查询数据表数据是否存在 +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(OSSFile::getId,id); +// OSSFile ossFile = ossFileService.getOne(queryWrapper); +// if( null == ossFile){ +// throw new JeroBootException("文件不存在.."); +// } +// String fileUrl = ossFile.getUrl(); +// InputStream inputStream = null; +// OutputStream outputStream = null; +// try { +// String fileName = ""; +// if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){ +// //本地下载 +// String filePath = uploadpath + File.separator + fileUrl; +// File file = new File(filePath); +// if(!file.exists()){ +// response.setStatus(404); +// throw new RuntimeException("文件不存在.."); +// } +// // 文件名称 +// fileName = file.getName(); +// inputStream = new BufferedInputStream(new FileInputStream(filePath)); +// }else if(CommonConstant.UPLOAD_TYPE_MINIO.equals(uploadType)){ +// // minio 下载 +// // 通过MinioUtil查询时 只需要桶后面的路径 +// String minioUrl = MinioUtil.getMinioUrl(); +// // Linux/unix 系统下文件路径分隔符为"/" 获取minio与存储桶的路径 +// minioUrl = minioUrl + MinioUtil.getBucketName() + "/"; +// String url = fileUrl.replace(minioUrl, ""); +// // 文件名称 +// fileName = ossFile.getFileName(); +// inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); +// } +// response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1")); +//// response.setContentType("application/force-download");// 设置强制下载不打开 +// outputStream = response.getOutputStream(); +// byte[] buf = new byte[1024]; +// int len; +// while ((len = inputStream.read(buf)) > 0) { +// outputStream.write(buf, 0, len); +// } +// response.flushBuffer(); +// } catch (IOException e) { +// log.error("预览文件失败" + e.getMessage()); +// response.setStatus(404); +// e.printStackTrace(); +// } finally { +// if (inputStream != null) { +// try { +// inputStream.close(); +// } catch (IOException e) { +// log.error(e.getMessage(), e); +// } +// } +// if (outputStream != null) { +// try { +// outputStream.close(); +// } catch (IOException e) { +// log.error(e.getMessage(), e); +// } +// } +// } +// +// } /** * 下载文件 * @@ -307,60 +307,6 @@ public class CommonController { } } - } - @GetMapping(value = "/fileView/{id}") - public void fileView(String id,HttpServletRequest request, HttpServletResponse response) { - // 查询数据表数据是否存在 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(OSSFile::getId,id); - OSSFile ossFile = ossFileService.getOne(queryWrapper); - if( null == ossFile){ - throw new JeroBootException("文件不存在.."); - } - InputStream inputStream = null; - OutputStream outputStream = null; - try { - String fileName = ""; - //本地下载 - String filePath = ossFile.getUrl(); - File file = new File(filePath); - if(!file.exists()){ - response.setStatus(404); - throw new RuntimeException("文件不存在.."); - } - // 文件名称 - fileName = file.getName(); - inputStream = new BufferedInputStream(new FileInputStream(filePath)); - response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1")); - response.setContentType("application/force-download");// 设置强制下载不打开 - outputStream = response.getOutputStream(); - byte[] buf = new byte[1024]; - int len; - while ((len = inputStream.read(buf)) > 0) { - outputStream.write(buf, 0, len); - } - response.flushBuffer(); - } catch (IOException e) { - log.error("文件下载失败" + e.getMessage()); - response.setStatus(404); - e.printStackTrace(); - } finally { - if (inputStream != null) { - try { - inputStream.close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - if (outputStream != null) { - try { - outputStream.close(); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } - } - } /** * 文件预览