java base64上传图片|接口读取图片,springboot配置映射读取资源

1.上传图片

  public static String uploadImg(String baseImg,String basePath,String fileSavePath,HttpServletRequest request)  {
        String type = getImageType(baseImg);
        //去除base64图片的前缀
        baseImg = baseImg.replaceFirst("data:(.+?);base64,", "");
        byte[] b;
        byte[] bs;
        OutputStream os = null;
        String fileName = "";
        String nowDate = "";
        // 格式化并获取当前日期(用来命名)
        SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
        nowDate = format.format(new Date());
        //把图片转换成二进制
        b =  Base64.decodeBase64(baseImg.replaceAll(" ", "+"));
        //生成路径 
        // /开头上传绝对路径,无/开头默认上传到项目部署所在路径
        String path ="/image"+separator+fileSavePath +separator + nowDate + separator + fileName;

        //随机生成图片的名字,同时根据类型结尾
        fileName = UUID.randomUUID().toString() + "." + type;
        File file = new File(path);
        if (!file.exists() && !file.isDirectory()) {
            file.mkdirs();
        }
        File imageFile = new File( path + separator + fileName);
        Base64 d = new Base64();
        // 保存
        try {
            bs = d.decode(Base64.encodeBase64(b));
            os = new FileOutputStream(imageFile);
            os.write(bs);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.getLocalizedMessage();
                }
            }
        }
        //return imageFile.getAbsolutePath(); 获取图片绝对路径
        return basePath + fileSavePath + separator + nowDate + separator + fileName;
    }


    //获取图片类型
    public  static String getImageType(String baseImg){
        //定义一个正则表达式的筛选规则,为了获取图片的类型
        String rgex = "data:image/(.*?);base64";
        if (StrUtil.isBlank(baseImg)){
            return null;
        }
        return getSubUtilSimple(baseImg, rgex);
    }


   public static String getSubUtilSimple(String soap, String rgex) {
        Pattern pattern = Pattern.compile(rgex);
        Matcher m = pattern.matcher(soap);
        while (m.find()) {
            return m.group(1);
        }
        return "";
    }

测试接口

    @PostMapping("/testupload")
    public Result<String> testupload(HttpServletRequest request) throws FileNotFoundException, SftpException {
        //上传到项目所在服务器
        String path = null;
        String base64="data:image/jpeg;base64,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";
        path = ImageUtils.saveImg(base64,basePath,"photo/startSrv",request);
        logger.info("testupload-path上传图片之后返回的回显地址:"+path);
        return Result.success(path);
    }


2.通过接口读取图片

  @PostMapping("/readFile")
    public void readFile(HttpServletResponse response, String fileUrl) throws IOException {
        try {
            File file = new File(fileUrl);
            if (! file.exists()){
                response.sendError(404,"找不到文件");
            }else {
                FileInputStream in = new FileInputStream(file);
                byte[] buf = new byte[in.available()];
                in.read(buf);
                response.setContentType("image/jpg");
                OutputStream toClient = response.getOutputStream();
                toClient.write(buf);
                toClient.flush();
                toClient.close();
                in.close();
            }
        } catch (Exception e) {
            response.sendError(500,e.getMessage());
        }
    }

3.微服务通过配置方式读取图片

spring:
  mvc:
    static-path-pattern:  /file/**    #配置的请求路径
  resources:
      #static-locations: file:E:/CH_Project/ch-service/file/  
      static-locations: file:/app/static/lcsfiles/  #带file请求路径映射到的资源目录根目录


                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值