src/main/java/com/zy/crm/common/service/OssService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/crm/manager/controller/PlanController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/plan/plan.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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; /** * 阿里云OSS服务类 @@ -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 ""; } /** 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(); } 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: 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) // // // 创建一个Blob对象 // // 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) // // 创建一个Blob对象 // 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; // 阻止默认的链接跳转行为 });