From c4d687aacfb4e7b6ee5ce67df93cf2f8d8df80c1 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期日, 26 十一月 2023 14:05:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-ops-api/ubcs-resource-api/src/main/java/com/vci/ubcs/resource/utils/FileDownloadUtil.java |  114 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 81 insertions(+), 33 deletions(-)

diff --git a/Source/UBCS/ubcs-ops-api/ubcs-resource-api/src/main/java/com/vci/ubcs/resource/utils/FileDownloadUtil.java b/Source/UBCS/ubcs-ops-api/ubcs-resource-api/src/main/java/com/vci/ubcs/resource/utils/FileDownloadUtil.java
index 89450ec..8df5b21 100644
--- a/Source/UBCS/ubcs-ops-api/ubcs-resource-api/src/main/java/com/vci/ubcs/resource/utils/FileDownloadUtil.java
+++ b/Source/UBCS/ubcs-ops-api/ubcs-resource-api/src/main/java/com/vci/ubcs/resource/utils/FileDownloadUtil.java
@@ -21,39 +21,39 @@
 @Slf4j
 public class FileDownloadUtil {
 
-    /**
-     * 涓嬭浇鏂囦欢
-     * @param response 鍝嶅簲瀵硅薄
-     * @param fileObjectBO 鏂囦欢鐨勪俊鎭紝鍖呭惈鏂囦欢鐨勮緭鍏ユ祦
-     * @throws IOException 涓嬭浇寮傚父浼氭姏鍑�
-     */
-    public static void downloadFile(HttpServletResponse response, FileObjectBO fileObjectBO) throws IOException {
-        downloadFile(response,fileObjectBO,true);
-    }
+	/**
+	 * 涓嬭浇鏂囦欢
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @param fileObjectBO 鏂囦欢鐨勪俊鎭紝鍖呭惈鏂囦欢鐨勮緭鍏ユ祦
+	 * @throws IOException 涓嬭浇寮傚父浼氭姏鍑�
+	 */
+	public static void downloadFile(HttpServletResponse response, FileObjectBO fileObjectBO) throws IOException {
+		downloadFile(response,fileObjectBO,true);
+	}
 
-    /**
-     * 涓嬭浇鏂囦欢
-     * @param response 鍝嶅簲瀵硅薄
-     * @param fileObjectBO 鏂囦欢鐨勪俊鎭紝鍖呭惈鏂囦欢鐨勮緭鍏ユ祦
-     * @param closeInputStream 鏄惁鍏抽棴娴�
-     * @throws IOException 涓嬭浇鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
-     */
-    public static void downloadFile(HttpServletResponse response, FileObjectBO fileObjectBO,boolean closeInputStream) throws IOException {
-        MediaType mediaType = MediaTypeFactory.getMediaType(fileObjectBO.getBucketName() + "." + fileObjectBO.getFileExtension()).orElse(MediaType.APPLICATION_OCTET_STREAM);
-        // 璁剧疆寮哄埗涓嬭浇涓嶆墦寮�
-        response.setContentType(mediaType.toString()+";application/force-download;charset=UTF-8");
-        try{
-            String fileName = URLEncoder.encode(fileObjectBO.getName() + "." + fileObjectBO.getFileExtension(), "UTF8");
-            response.addHeader("Content-Disposition", "attachment;filename="+ fileName+ ";filename*=utf-8''");
-        }catch(Exception e){
-            if(log.isErrorEnabled()){
-                log.error("璁剧疆鏂囦欢鐨勫悕绉板埌鍝嶅簲娴佺殑鏃跺�欏嚭閿�",e);
-            }
-        }
-        response.setCharacterEncoding("UTF-8");
-        Cookie cookie = new Cookie("fileDownload", "true");
-        cookie.setPath("/");
-        response.addCookie(cookie);
+	/**
+	 * 涓嬭浇鏂囦欢
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @param fileObjectBO 鏂囦欢鐨勪俊鎭紝鍖呭惈鏂囦欢鐨勮緭鍏ユ祦
+	 * @param closeInputStream 鏄惁鍏抽棴娴�
+	 * @throws IOException 涓嬭浇鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
+	 */
+	public static void downloadFile(HttpServletResponse response, FileObjectBO fileObjectBO,boolean closeInputStream) throws IOException {
+		MediaType mediaType = MediaTypeFactory.getMediaType(fileObjectBO.getBucketName() + "." + fileObjectBO.getFileExtension()).orElse(MediaType.APPLICATION_OCTET_STREAM);
+		// 璁剧疆寮哄埗涓嬭浇涓嶆墦寮�
+		response.setContentType(mediaType.toString()+";application/force-download;charset=UTF-8");
+		try{
+			String fileName = URLEncoder.encode(fileObjectBO.getName() + "." + fileObjectBO.getFileExtension(), "UTF8");
+			response.addHeader("Content-Disposition", "attachment;filename="+ fileName+ ";filename*=utf-8''");
+		}catch(Exception e){
+			if(log.isErrorEnabled()){
+				log.error("璁剧疆鏂囦欢鐨勫悕绉板埌鍝嶅簲娴佺殑鏃跺�欏嚭閿�",e);
+			}
+		}
+		response.setCharacterEncoding("UTF-8");
+		Cookie cookie = new Cookie("fileDownload", "true");
+		cookie.setPath("/");
+		response.addCookie(cookie);
 		if(closeInputStream) {
 			try (InputStream ins = (fileObjectBO.getInputStream() != null ? fileObjectBO.getInputStream() : new FileInputStream(fileObjectBO.getFileLocalPath()))) {
 				IOUtils.copy(ins, response.getOutputStream());
@@ -76,5 +76,53 @@
 				throw e;
 			}
 		}
-    }
+	}
+
+	/**
+	 * 涓嬭浇鏂囦欢
+	 * @param response 鍝嶅簲瀵硅薄
+	 * @param fileObjectBO 鏂囦欢鐨勪俊鎭紝鍖呭惈鏂囦欢鐨勮緭鍏ユ祦
+	 * @param closeInputStream 鏄惁鍏抽棴娴�
+	 * @throws IOException 涓嬭浇鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
+	 */
+	public static void downloadFileLocal(HttpServletResponse response, FileObjectBO fileObjectBO,boolean closeInputStream) throws IOException {
+		MediaType mediaType = MediaTypeFactory.getMediaType(fileObjectBO.getFileExtension()).orElse(MediaType.APPLICATION_OCTET_STREAM);
+		// 璁剧疆寮哄埗涓嬭浇涓嶆墦寮�
+		response.setContentType(mediaType.toString()+";application/force-download;charset=UTF-8");
+		try{
+			String fileName = URLEncoder.encode(fileObjectBO.getName(), "UTF8");
+			response.addHeader("Content-Disposition", "attachment;filename="+ fileName+ ";filename*=utf-8''");
+		}catch(Exception e){
+			if(log.isErrorEnabled()){
+				log.error("璁剧疆鏂囦欢鐨勫悕绉板埌鍝嶅簲娴佺殑鏃跺�欏嚭閿�",e);
+			}
+		}
+		response.setCharacterEncoding("UTF-8");
+		Cookie cookie = new Cookie("fileDownload", "true");
+		cookie.setPath("/");
+		response.addCookie(cookie);
+		if(closeInputStream) {
+			try (InputStream ins = (fileObjectBO.getInputStream() != null ? fileObjectBO.getInputStream() : new FileInputStream(fileObjectBO.getFileLocalPath()))) {
+				IOUtils.copy(ins, response.getOutputStream());
+			} catch (IOException e) {
+				//鏈夊彲鑳藉鎴风鐨勯摼鎺�
+				if (log.isErrorEnabled()) {
+					log.error("鍐欏叆鏂囦欢鍒板搷搴旀祦鍑洪敊", e);
+				}
+				throw e;
+			}
+		}else{
+			try {
+				InputStream ins = (fileObjectBO.getInputStream() != null ? fileObjectBO.getInputStream() : new FileInputStream(fileObjectBO.getFileLocalPath()));
+				IOUtils.copy(ins, response.getOutputStream());
+			} catch (IOException e) {
+				//鏈夊彲鑳藉鎴风鐨勯摼鎺�
+				if (log.isErrorEnabled()) {
+					log.error("鍐欏叆鏂囦欢鍒板搷搴旀祦鍑洪敊", e);
+				}
+				throw e;
+			}
+		}
+	}
+
 }

--
Gitblit v1.9.3