zoukankan      html  css  js  c++  java
  • 上传图片到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;
        }
  • 相关阅读:
    Docker——搭建SFTP
    PicGo——利用PicGo和GitHub搭建免费图床提供给Typecho使用
    GitHub——如何生成Personal access tokens
    leetcode——两数相加【二】
    每天一道面试题——请实现add(1,2)(3)【二】
    leetcode——两数之和【一】
    每天一道面试题——JavaScript的this指向【一】
    PHP——安装ThinkPHP框架报错
    项目代码 if/else 过多,引起程序猿口吐莲花
    JDK9-JDK14 相关新特性说明及使用
  • 原文地址:https://www.cnblogs.com/ckfeng/p/15667908.html
Copyright © 2011-2022 走看看