From d8f51c40544ae278095e991ed00ec297842d4332 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期日, 29 九月 2024 11:01:55 +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