美文网首页程序员
利用post上传实现图床转存到另外的服务器

利用post上传实现图床转存到另外的服务器

作者: Ktry | 来源:发表于2020-02-27 13:07 被阅读0次

    利用post上传实现图床转存到另外的服务器

    uploadFile方法请查看Java模拟post请求上传文件

    /**
     * 返回状态和内容的实体类
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class BaseResult {
        private Integer code;   // 0:请求失败   1:请求成功
        private Object data;    //错误的原因或者正确的内容
    }
    
    /**
      * 图床
      * @param file
      * @return 上传图片的结果集
      */
    
    @RequestMapping(value = "imgBed",method = RequestMethod.POST)
    public BaseResult imgBed(@RequestParam("file") MultipartFile file) {
        BaseResult baseResult = new BaseResult();
        File file1 = null;//创建临时文件
        if (!file.isEmpty()) {//首先判断是不是空的文件
            int begin = file.getOriginalFilename().indexOf(".");//对文文件的全名进行截取然后在后缀名进行删选。
            int last = file.getOriginalFilename().length();
            String a = file.getOriginalFilename().substring(begin, last);//获得文件后缀名
            if (a.endsWith(".jpg") || a.endsWith(".png")) {
    
                file1 = new File("tessdata/"+ UUID.randomUUID().toString().replaceAll("-","")+".jpg");//临时文件名
                try {
                    FileUtils.copyInputStreamToFile(file.getInputStream(), file1);
                    baseResult = uploadFile("https://imgurl.org/upload/ftp", "file", file1.getPath());//post转发文件到第三方图床
                    baseResult.setCode(1);
                    Pattern urls = Pattern.compile("\"url.*?jpg\"");//匹配图片链接
                    Matcher urlm = urls.matcher(baseResult.getData().toString());
                    while(urlm.find()) {
                        String url = urlm.group(0);
                        baseResult.setData(url.replaceAll("\"","").replaceAll("\\\\","").replaceAll("url:",""));//过滤无用字符
                    }
                } catch (IOException e) {
                    baseResult.setCode(0);
                    baseResult.setData("操作失败"+e.getMessage());
                }
    
    
    
            } else {
                baseResult.setCode(0);
                baseResult.setData("文件格式有误");
            }
        }
        if (file1 != null) {
            file1.delete();//如果临时文件存在,就删除文件
        }
        return baseResult;
    }
    

    相关文章

      网友评论

        本文标题:利用post上传实现图床转存到另外的服务器

        本文链接:https://www.haomeiwen.com/subject/dlpthhtx.html