From 7885832c819f7922eddf20480cd9e4d4e97b265e Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 21 八月 2023 15:47:14 +0800
Subject: [PATCH] #oss实装

---
 src/main/java/com/zy/crm/manager/controller/PlanController.java |   12 ++-
 src/main/webapp/static/js/plan/plan.js                          |   67 +++++++++++-----------
 src/main/resources/application.yml                              |    8 +-
 src/main/java/com/zy/crm/common/service/OssService.java         |   69 +++++++++++++++++++++-
 4 files changed, 111 insertions(+), 45 deletions(-)

diff --git a/src/main/java/com/zy/crm/common/service/OssService.java b/src/main/java/com/zy/crm/common/service/OssService.java
index f7bd76f..fc3ce79 100644
--- a/src/main/java/com/zy/crm/common/service/OssService.java
+++ b/src/main/java/com/zy/crm/common/service/OssService.java
@@ -17,7 +17,11 @@
 import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.net.URL;
+import java.nio.file.Path;
 import java.util.Date;
+import java.nio.file.StandardCopyOption;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 
 /**
  * 闃块噷浜慜SS鏈嶅姟绫�
@@ -78,6 +82,35 @@
         }
         throw new CoolException("500-涓婁紶澶辫触");
     }
+    public String upload(InputStream inputStream, String suffix,String contentType){
+        if(suffix.trim().equals("file")){
+            suffix="jpg";
+        }
+        OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret);
+        String name = "";
+        try {
+            if (!ossClient.doesBucketExist(bucket)) {
+                ossClient.createBucket(bucket);
+                log.info("鎮ㄧ殑Bucket涓嶅瓨鍦紝鍒涘缓Bucket锛歿}",bucket);
+            }
+            name = String.valueOf(snowflakeIdWorker.nextId()).concat(".").concat(suffix);
+            // 娣诲姞 ContentType
+            ObjectMetadata objectMetadata = new ObjectMetadata();
+//            objectMetadata.setContentType("image/jpg");
+            objectMetadata.setContentType(contentType);
+            ossClient.putObject(bucket, name, inputStream, objectMetadata);
+            Date expiration = new Date(new Date().getTime() + 3600L * 1000 * 24 * 365 * 100);
+            URL url = ossClient.generatePresignedUrl(bucket, name, expiration);
+            log.info("OSS鏂囦欢涓婁紶鎴愬姛: {}", name);
+//            return String.valueOf(url);
+            return "http://zhongyang-ftpserver.oss-cn-hangzhou.aliyuncs.com/"+name;
+        } catch (Exception e){
+            e.printStackTrace();
+        } finally {
+            ossClient.shutdown();
+        }
+        throw new CoolException("500-涓婁紶澶辫触");
+    }
 
     public String upload(InputStream inputStream) {
         return upload(inputStream, ".jpg");
@@ -86,19 +119,47 @@
     /**
      * 涓嬭浇OSS鏂囦欢
      */
-    public void download(String name) {
+//    public void download(String name) {
+//        OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret);
+//        try {
+//            OSSObject ossObject = ossClient.getObject(bucket, name);
+//            InputStream inputStream = ossObject.getObjectContent();
+//            // do transfer
+//            inputStream.close();
+//            log.info("OSS鏂囦欢涓嬭浇鎴愬姛: {}", name);
+//        } catch (Exception e){
+//            e.printStackTrace();
+//        } finally {
+//            ossClient.shutdown();
+//        }
+//    }
+
+    public String download(String name) {
         OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret);
         try {
             OSSObject ossObject = ossClient.getObject(bucket, name);
             InputStream inputStream = ossObject.getObjectContent();
-            // do transfer
+
+            // 鑾峰彇榛樿涓嬭浇鐩綍
+            String defaultDownloadDir = System.getProperty("user.home") + "/Downloads";
+
+            // 鍒涘缓鏂囦欢淇濆瓨璺緞
+            Path filePath = Paths.get(defaultDownloadDir, name);
+
+            // 灏嗚緭鍏ユ祦澶嶅埗鍒版枃浠�
+            Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
+
+            // 鍏抽棴杈撳叆娴�
             inputStream.close();
-            log.info("OSS鏂囦欢涓嬭浇鎴愬姛: {}", name);
-        } catch (Exception e){
+
+            log.info("OSS鏂囦欢涓嬭浇鎴愬姛锛屼繚瀛樿矾寰�: {}", filePath);
+            return ""+filePath;
+        } catch (Exception e) {
             e.printStackTrace();
         } finally {
             ossClient.shutdown();
         }
+        return "";
     }
 
     /**
diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java
index c27f9fb..920f19e 100644
--- a/src/main/java/com/zy/crm/manager/controller/PlanController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -225,9 +225,11 @@
     public R insertFile(@RequestParam("planId") String planId,@RequestParam MultipartFile file){
         try{
             InputStream inputStream = file.getInputStream();
+            // 鑾峰彇鏂囦欢鐨勫唴瀹圭被鍨�
+            String contentType = file.getContentType();
             String suffix = getFileSuffix(file.getOriginalFilename());
-//            String url = ossService.upload(inputStream, suffix);
-            String url = "http://tjdt.oss-cn-hangzhou.aliyuncs.com/"+file.getOriginalFilename();
+            String url = ossService.upload(inputStream, suffix,contentType);
+//            String url = "http://tjdt.oss-cn-hangzhou.aliyuncs.com/"+file.getOriginalFilename();
             String[] names = url.split("com/");
             String name= names[1];
             String[] split = planId.split("-");
@@ -298,7 +300,7 @@
 
     @RequestMapping(value = "/plan/download/file/auth")
 //    @ManagerAuth
-    public void downloadFile(@RequestParam("downloadUrl") String downloadUrl,HttpServletResponse response){
+    public R downloadFile(@RequestParam("downloadUrl") String downloadUrl,HttpServletResponse response){
 //        System.out.println("---寮�濮�---");
 //        MultipartFile
         try{
@@ -306,10 +308,12 @@
             String name= names[1];
 //            ResponseEntity<Resource> resourceResponseEntity = FileSaveExampleUtil.downloadFile(downloadUrl, response);
 //            return R.ok(resourceResponseEntity);
-            ossService.download(name);
+            String download = ossService.download(name);
+            return R.ok().add(download);
         }catch (Exception e){
 
         }
+        return R.error();
     }
 
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 88bc5ac..bb73508 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -17,7 +17,7 @@
     name: @pom.build.finalName@
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://localhost:1433;databasename=zy_crm
+    url: jdbc:sqlserver://192.168.4.15:1433;databasename=zy_crm
     username: sa
     password: sa@123
 #    url: jdbc:sqlserver://47.97.1.152:51433;databasename=zy_crm
@@ -55,9 +55,9 @@
 
 aliyun:
   oss:
-    id: LTAI4GDzr6ioSHuRw2mk22ug
-    secret: 84CHL7tF21LbU1qpaP0jn9mIAZP9bv
-    bucket: tjdt
+    id: LTAI5tB2wHvhak9xLkHrJb9r
+    secret: RgUbOIWFmydPXVNI4w4EviuSPoysIa
+    bucket: zhongyang-ftpserver
     endpoint: http://oss-cn-hangzhou.aliyuncs.com
 
 db:
diff --git a/src/main/webapp/static/js/plan/plan.js b/src/main/webapp/static/js/plan/plan.js
index dc02841..5997956 100644
--- a/src/main/webapp/static/js/plan/plan.js
+++ b/src/main/webapp/static/js/plan/plan.js
@@ -586,42 +586,43 @@
 
     // 鐐瑰嚮涓嬭浇鎸夐挳鏃惰Е鍙戞枃浠朵笅杞�
     $('#data-btn-file3').on('click', 'a', function() {
+        var downloadUrl = $(this).attr('href');
+        // console.log(downloadUrl)
+        // console.log(baseUrl)
+        // window.open("/\//"+downloadUrl);
+        // return false;
         // var downloadUrl = $(this).attr('href');
         // console.log(downloadUrl)
-        // // console.log(baseUrl)
-        // // window.open("/\//"+downloadUrl);
-        // // return false;
-        // // var downloadUrl = $(this).attr('href');
-        // // console.log(downloadUrl)
-        // // // 鍙戣捣 AJAX 璇锋眰锛岃幏鍙栨枃浠�
-        // $.ajax({
-        //     url: '/plan/download/file/auth',
-        //     type: 'POST',
-        //     data: { downloadUrl: downloadUrl },  // 浼犻�掍笅杞介摼鎺ヤ綔涓哄弬鏁�
-        //     success: function(response) {
-        //         // console.log(response)
-        // //         // window.open(baseUrl+response.msg)
-        // //         // 鍒涘缓涓�涓狟lob瀵硅薄
-        // //         var blob = new Blob([response]);
-        // //         // 浣跨敤FileSaver淇濆瓨鏂囦欢
-        // //         var fileName = downloadUrl.substring(downloadUrl.lastIndexOf('\\') + 1);
-        // //         console.log(fileName)
-        // //         saveAs(blob, fileName);
+        // // 鍙戣捣 AJAX 璇锋眰锛岃幏鍙栨枃浠�
+        $.ajax({
+            url: '/plan/download/file/auth',
+            type: 'POST',
+            data: { downloadUrl: downloadUrl },  // 浼犻�掍笅杞介摼鎺ヤ綔涓哄弬鏁�
+            success: function(response) {
+                console.log(response)
+                layer.msg(response.msg+',宸蹭笅杞借嚦榛樿璺緞锛佽缁嗕笅杞借矾寰勶細'+response.data, {icon: 1});
+        //         // window.open(baseUrl+response.msg)
+        //         // 鍒涘缓涓�涓狟lob瀵硅薄
+        //         var blob = new Blob([response]);
+        //         // 浣跨敤FileSaver淇濆瓨鏂囦欢
+        //         var fileName = downloadUrl.substring(downloadUrl.lastIndexOf('\\') + 1);
+        //         console.log(fileName)
+        //         saveAs(blob, fileName);
         //         return false;
-        //     },
-        //     error: function() {
-        //         layer.msg('璇锋眰鏂囦欢涓嬭浇澶辫触');
-        //     }
-        // });
-        var downloadUrl = $(this).attr('href');
-        console.log(downloadUrl)
-        if (downloadUrl == "" || downloadUrl == null) {
-            layer.msg('璇峰厛涓婁紶app鏂囦欢',{time:1000},() => {
-                parent.location.reload()
-            })
-        }else{
-            window.open(downloadUrl);
-        }
+            },
+            error: function() {
+                layer.msg('璇锋眰鏂囦欢涓嬭浇澶辫触');
+            }
+        });
+        // var downloadUrl = $(this).attr('href');
+        // console.log(downloadUrl)
+        // if (downloadUrl == "" || downloadUrl == null) {
+        //     layer.msg('璇峰厛涓婁紶app鏂囦欢',{time:1000},() => {
+        //         parent.location.reload()
+        //     })
+        // }else{
+        //     window.open(downloadUrl);
+        // }
         return false;  // 闃绘榛樿鐨勯摼鎺ヨ烦杞涓�
     });
 

--
Gitblit v1.9.1