中扬CRM客户关系管理系统
LSH
2023-08-21 7885832c819f7922eddf20480cd9e4d4e97b265e
#oss实装
4个文件已修改
156 ■■■■ 已修改文件
src/main/java/com/zy/crm/common/service/OssService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/PlanController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/plan/plan.js 67 ●●●● 补丁 | 查看 | 原始文档 | 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;  // 阻止默认的链接跳转行为
    });