• 上传图片到tomcai以及oss


    这里的配置是托管到nacos上的

    配置

    #Tomcat服务器图片上传地址
    pathFile:
      img: D:/apache-tomcat-9.0.41/webapps/img/
    fileTomcat: 
      imgUrl: http://192.168.3.8:8083/img/

    引入nacos配置

        @Value("${pathFile.img}")
        private String pathFileImg;
    
        @Value("${fileTomcat.imgUrl}")
        private String fileTomcatImgUrl;

    上传图片到tomcat api

       /**
         * 上传图像到tomcat  测试
         *
         * @param file 图像
         * @return
         */
        @PostMapping("test")
        public AjaxResult test(@RequestParam("file") MultipartFile file) {
            log.info("pathFile->{}", pathFileImg);
            if (!file.isEmpty()) {
                String burl = fileTomcatImgUrl + "businessLicense" + "/";
                String bImg = pathFileImg + "businessLicense" + "/";
                // 获取文件并将其保存在某处
                String myFileOriginalFilename = file.getOriginalFilename();
                assert myFileOriginalFilename != null;
                File file1 = new File(bImg, myFileOriginalFilename);
                //上传图片到tomcat
                try {
                    FileUtils.copyInputStreamToFile(file.getInputStream(), file1);
                } catch (IOException e) {
                    e.printStackTrace();
                }
    
                System.out.println("url-->" + burl + myFileOriginalFilename);
                return AjaxResult.success(burl + myFileOriginalFilename);
            }
            return AjaxResult.error("上传失败");
        }

    上传图片到oss api

        /**
         * oss test
         *
         * @param file 文件
         * @return
         */
        @PostMapping("ossTest")
        public AjaxResult ossTest(@RequestParam("file") MultipartFile file) {
            if (!file.isEmpty()) {
                try {
                    // 判断是否图片类型
                    String fileExtension = ImageUtil.getFileExtention(Objects.requireNonNull(file.getOriginalFilename()));
                    boolean image = ImageUtil.isImage(fileExtension);
                    if (image) {
                        return AjaxResult.success(200, OssUtils.uploadFileInputSteam("." + fileExtension, file));
                    } else {
                        return AjaxResult.error("文件格式不支持");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    return AjaxResult.error(e.getMessage());
                }
            }
            return AjaxResult.error("上传失败");
        }
     /**
         * 上传文件流
         *
         * @param oranFileName 上传到服务器上的文件路径和名称
         * @param file         来自本地的文件或者文件流
         */
        public static String uploadFileInputSteam(String oranFileName, MultipartFile file) {
    
            // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg
            String objectName = getRandomImageName(oranFileName);
    
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
    
            // 上传文件流
            try (InputStream inputStream = new FileInputStream(transferToFile(file))) {
                //上传到OSS
                ossClient.putObject(CAINAER_IMG, objectName, inputStream);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
    
            // 关闭OSSClient。
            ossClient.shutdown();
    
            //返回文件在服务器上的全路径+名称
            return getRealName(objectName);
        }
        /**
         * 获取一个随机的文件名
         *
         * @param oranName 初始的文件名
         * @return 返回加uuid后的文件名
         */
        private static String getRandomImageName(String oranName) {
            //获取一个uuid 去掉-
            String uuid = UUID.randomUUID().toString().replace("-", "");
            //查一下是否带路径
            int cutPoint = oranName.lastIndexOf("/") + 1;
            //如果存在路径
            if (cutPoint != 0) {
                //掐头 如果开头是/ 则去掉
                String head = oranName.indexOf("/") == 0 ? oranName.substring(1, cutPoint) : oranName.substring(0, cutPoint);
                //去尾
                String tail = oranName.substring(cutPoint);
                //返回正确的带路径的图片名称
                return FOLDER + head + uuid + tail;
            }
            //不存在 直接返回
            return FOLDER + uuid + oranName;
        }
  • 相关阅读:
    【Selenium IDE】下载安装Chrome和Firefox插件IDE ide了解就行 不是重点 重点是写脚本
    调用接口时,生产环境,路径加斜杠“/”和不加的区别
    WPF 踩坑笔记12 DataGrid触发选中行事件
    WPF 踩坑笔记11 线程取消
    WPF 踩坑笔记10 ListBox异步动态加载
    WPF 踩坑笔记9 直接打印
    思维的体操
    【洛谷 P4213】 【模板】杜教筛(Sum)
    【洛谷 P2257】 YY的GCD(莫比乌斯反演)
    【洛谷 P4980】 【模板】Pólya 定理
  • 原文地址:https://www.cnblogs.com/ckfeng/p/15667908.html
Copyright © 2020-2023  润新知