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