From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 15:18:51 +0800
Subject: [PATCH] 整理版本

---
 pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/download/DownloadFileCtrl.java |  109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 109 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/download/DownloadFileCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/download/DownloadFileCtrl.java
new file mode 100644
index 0000000..4eda17f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/download/DownloadFileCtrl.java
@@ -0,0 +1,109 @@
+package com.dy.pipIrrWebFile.download;
+
+import com.dy.pipIrrGlobal.dyFile.FileOperate;
+import com.dy.pipIrrGlobal.dyFile.FileRestVo;
+import com.dy.pipIrrGlobal.pojoFi.WebFile;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.net.URLEncoder;
+
+/**
+ * web鏂囦欢涓嬭浇
+ */
+@Slf4j
+@RestController
+@RequestMapping(path="download")
+@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
+public class DownloadFileCtrl {
+
+    @Autowired
+    private DownloadFileSv sv ;
+
+    @Autowired
+    private FileOperate fileOp ;
+
+    @Value("${dy.webFile.fmUrl}")
+    private String fmUrl ;
+
+
+    /**
+     * 閫氳繃web鏂囦欢鏁版嵁搴撳疄浣搃d涓嬭浇璇ユ枃浠�
+     * @param id
+     * @return
+     */
+    @GetMapping("/down")
+    public void down(String id, HttpServletRequest req, HttpServletResponse rep){
+        try{
+            WebFile 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 ;
+                    //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);
+                                    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{
+            }
+        }catch (Exception e){
+            log.error("涓嬭浇鏂囦欢鏃跺紓甯�", e);
+        }
+
+    }
+}

--
Gitblit v1.8.0