diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java index 5537674..a18f10c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java @@ -59,12 +59,23 @@ * 文件流下载(minio) */ @ApiOperation("文件流下载") - @PostMapping("/download/stream") + @GetMapping("/download/stream") @ResponseBody public void upload(@RequestParam(name = "fileName") String fileName, HttpServletResponse response) { minioUtil.downloadStream(fileName, response); } + + /** + * 文件流下载(minio) + */ + @ApiOperation("图片预览") + @GetMapping("/image/preview") + @ResponseBody + public void preview(@RequestParam(name = "fileName") String fileName, HttpServletResponse response) { + minioUtil.previewFile(fileName, response); + } + /** * 文件路径(minio) * 实现静态文件url获取 diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java index 5537674..a18f10c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java @@ -59,12 +59,23 @@ * 文件流下载(minio) */ @ApiOperation("文件流下载") - @PostMapping("/download/stream") + @GetMapping("/download/stream") @ResponseBody public void upload(@RequestParam(name = "fileName") String fileName, HttpServletResponse response) { minioUtil.downloadStream(fileName, response); } + + /** + * 文件流下载(minio) + */ + @ApiOperation("图片预览") + @GetMapping("/image/preview") + @ResponseBody + public void preview(@RequestParam(name = "fileName") String fileName, HttpServletResponse response) { + minioUtil.previewFile(fileName, response); + } + /** * 文件路径(minio) * 实现静态文件url获取 diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index f910bd0..c752ca8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -42,6 +42,9 @@ @Value("${minio.endpoint}") private String endpoint; + @Value("${casic.previewUrl}") + private String previewUrl; + /** * description: 判断bucket是否存在,不存在则创建 * @@ -194,7 +197,7 @@ * description: 下载文件 * * @param fileName - * @return: org.springframework.http.ResponseEntity + * @return: org.springframework.http.ResponseEntity */ public ResponseEntity download(String fileName) { ResponseEntity responseEntity = null; @@ -241,7 +244,51 @@ * description: 下载文件流 * * @param fileName - * @return: org.springframework.http.ResponseEntity + * @return: org.springframework.http.ResponseEntity + */ + public void previewFile(String fileName, HttpServletResponse response) { + InputStream in = null; + ByteArrayOutputStream out = null; + try { + in = minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(fileName).build()); + out = new ByteArrayOutputStream(); + IOUtils.copy(in, out); + //封装返回值 + byte[] data = out.toByteArray(); + response.reset(); + response.setHeader("Content-Disposition", "inline; filename=\"" + fileName + "\""); + response.addHeader("Content-Length", "" + data.length); + response.setContentType("image/png"); + OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); + outputStream.write(data); + outputStream.flush(); + outputStream.close(); + response.flushBuffer(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (out != null) { + out.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * description: 下载文件流 + * + * @param fileName + * @return: org.springframework.http.ResponseEntity */ public void downloadStream(String fileName, HttpServletResponse response) { InputStream in = null; @@ -286,6 +333,7 @@ } } + /** * 查看文件对象 * @@ -338,6 +386,11 @@ } } + public String getPreviewUrl(String fileName) { + return "http://111.198.10.15:21609/minio/file/image/preview?fileName=" + fileName; + } + + public String getFileUrl(String fileName) { return endpoint + "/" + bucketName + "/" + fileName; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java index 5537674..a18f10c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MinioFileController.java @@ -59,12 +59,23 @@ * 文件流下载(minio) */ @ApiOperation("文件流下载") - @PostMapping("/download/stream") + @GetMapping("/download/stream") @ResponseBody public void upload(@RequestParam(name = "fileName") String fileName, HttpServletResponse response) { minioUtil.downloadStream(fileName, response); } + + /** + * 文件流下载(minio) + */ + @ApiOperation("图片预览") + @GetMapping("/image/preview") + @ResponseBody + public void preview(@RequestParam(name = "fileName") String fileName, HttpServletResponse response) { + minioUtil.previewFile(fileName, response); + } + /** * 文件路径(minio) * 实现静态文件url获取 diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index f910bd0..c752ca8 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -42,6 +42,9 @@ @Value("${minio.endpoint}") private String endpoint; + @Value("${casic.previewUrl}") + private String previewUrl; + /** * description: 判断bucket是否存在,不存在则创建 * @@ -194,7 +197,7 @@ * description: 下载文件 * * @param fileName - * @return: org.springframework.http.ResponseEntity + * @return: org.springframework.http.ResponseEntity */ public ResponseEntity download(String fileName) { ResponseEntity responseEntity = null; @@ -241,7 +244,51 @@ * description: 下载文件流 * * @param fileName - * @return: org.springframework.http.ResponseEntity + * @return: org.springframework.http.ResponseEntity + */ + public void previewFile(String fileName, HttpServletResponse response) { + InputStream in = null; + ByteArrayOutputStream out = null; + try { + in = minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(fileName).build()); + out = new ByteArrayOutputStream(); + IOUtils.copy(in, out); + //封装返回值 + byte[] data = out.toByteArray(); + response.reset(); + response.setHeader("Content-Disposition", "inline; filename=\"" + fileName + "\""); + response.addHeader("Content-Length", "" + data.length); + response.setContentType("image/png"); + OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); + outputStream.write(data); + outputStream.flush(); + outputStream.close(); + response.flushBuffer(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (out != null) { + out.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * description: 下载文件流 + * + * @param fileName + * @return: org.springframework.http.ResponseEntity */ public void downloadStream(String fileName, HttpServletResponse response) { InputStream in = null; @@ -286,6 +333,7 @@ } } + /** * 查看文件对象 * @@ -338,6 +386,11 @@ } } + public String getPreviewUrl(String fileName) { + return "http://111.198.10.15:21609/minio/file/image/preview?fileName=" + fileName; + } + + public String getFileUrl(String fileName) { return endpoint + "/" + bucketName + "/" + fileName; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java index c7804da..9fff4bf 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java @@ -115,7 +115,7 @@ // 加载模板 OutputStream output = new FileOutputStream(tempDir + urlPath); MinioUtil minioUtil = SpringContextUtil.getBean(MinioUtil.class); - QRCodeUtil.getQRCode(minioUtil.getFileUrl(content), output); + QRCodeUtil.getQRCode(minioUtil.getPreviewUrl(content), output); } /**