0
点赞
收藏
分享

微信扫一扫

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

陆佃 2021-09-21 阅读 27

利用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;
}
举报

相关推荐

0 条评论