From 23e16cb8f135d17e98b34786eeedb1fd226dbc4a Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期六, 27 四月 2024 18:41:46 +0800
Subject: [PATCH] 1、修改DownloadFileCtrl中的文件名称转码方式; 2、用EasyExcel实现标识类二维码导出excel文件并下载功能。

---
 pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java |   97 +++++++++++++++++++++++++-----------------------
 1 files changed, 50 insertions(+), 47 deletions(-)

diff --git a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java
index 57f5648..f858373 100644
--- a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java
+++ b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java
@@ -17,6 +17,7 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.net.URLEncoder;
 
 /**
  * web鏂囦欢涓嬭浇
@@ -44,65 +45,67 @@
      */
     @GetMapping("/down")
     public void down(String id, HttpServletRequest req, HttpServletResponse rep){
-        OthFile fPo = sv.selectById(id) ;
-        if(fPo != null){
-            FileRestVo frVo = fileOp.parseHashcode(fmUrl, fPo.hash) ;
-            if(frVo.fileSysAbsolutePath != null){
-                if(!frVo.fileSysAbsolutePath.endsWith("\\\\") && !frVo.fileSysAbsolutePath.endsWith("/") ){
-                    frVo.fileSysAbsolutePath = frVo.fileSysAbsolutePath + "/" ;
+        try{
+            OthFile fPo = sv.selectById(id) ;
+            if(fPo != null){
+                FileRestVo frVo = fileOp.parseHashcode(fmUrl, fPo.hash) ;
+                if(frVo.fileSysAbsolutePath != null){
+                    if(!frVo.fileSysAbsolutePath.endsWith("\\\\") && !frVo.fileSysAbsolutePath.endsWith("/") ){
+                        frVo.fileSysAbsolutePath = frVo.fileSysAbsolutePath + "/" ;
+                    }
                 }
-            }
-            String filePath = frVo.fileSysAbsolutePath + fPo.filePath ;
-            File f = new File(filePath) ;
-            if(f.exists()){
-                String fileReName = fPo.orgName + "." + fPo.extName ;
-                try {
-                    fileReName = new String(fileReName.getBytes("UTF-8"), "ISO-8859-1");
-                } catch (Exception e) {
-                    fileReName = "file" ;
-                }
-                rep.addHeader("content-type", "application/octet-stream");
-                rep.addHeader("Content-Disposition", "attachment;fileName=" + fileReName);
+                String filePath = frVo.fileSysAbsolutePath + fPo.filePath ;
+                File f = new File(filePath) ;
+                if(f.exists()){
+                    String fileReName = fPo.orgName + "." + fPo.extName ;
+                    //URLEncoder.encode鍙互闃叉涓枃涔辩爜
+                    fileReName = URLEncoder.encode(fileReName, "UTF-8").replaceAll("\\+", "%20");
+                    rep.addHeader("content-type", "application/octet-stream");
+                    rep.addHeader("Content-Disposition", "attachment;fileName=" + fileReName);
 
-                ServletOutputStream out = null;
-                FileInputStream in = null ;
-                try {
-                    out = rep.getOutputStream() ;
-                } catch (Exception ee) {
-                    out = null ;
-                }finally{
-                    if(out != null){
-                        byte[] bs = new byte[1024] ;
-                        int len = -1 ;
-                        try {
-                            in = new FileInputStream(f);
-                            len = in.read(bs) ;
-                            while(len != -1){
-                                out.write(bs, 0, len);
+                    ServletOutputStream out = null;
+                    FileInputStream in = null ;
+                    try {
+                        out = rep.getOutputStream() ;
+                    } catch (Exception ee) {
+                        out = null ;
+                    }finally{
+                        if(out != null){
+                            byte[] bs = new byte[1024] ;
+                            int len = -1 ;
+                            try {
+                                in = new FileInputStream(f);
                                 len = in.read(bs) ;
-                            }
-                        } catch (Exception eee) {
-                        } finally {
-                            if(out != null){
-                                try{
-                                    out.flush();
-                                    out.close();
-                                }catch(Exception e){
-                                }finally{
-                                    if(in != null){
-                                        try{
-                                            in.close();
-                                        }catch(Exception e){
+                                while(len != -1){
+                                    out.write(bs, 0, len);
+                                    len = in.read(bs) ;
+                                }
+                            } catch (Exception eee) {
+                            } finally {
+                                if(out != null){
+                                    try{
+                                        out.flush();
+                                        out.close();
+                                    }catch(Exception e){
+                                    }finally{
+                                        if(in != null){
+                                            try{
+                                                in.close();
+                                            }catch(Exception e){
+                                            }
                                         }
                                     }
                                 }
                             }
                         }
                     }
+                }else{
                 }
             }else{
             }
-        }else{
+        }catch (Exception e){
+            log.error("涓嬭浇鏂囦欢鏃跺紓甯�", e);
         }
+
     }
 }

--
Gitblit v1.8.0