图片上传返回图片URL地址的方法。

29 阅读1分钟
@ApiOperation(value = "兑换券图片上传", notes = "兑换券图片上传")
@ResponseBody
@PostMapping("/upload")
public Result<String> uploadTheImage(@RequestParam("file") MultipartFile file, HttpServletRequest request) {


    String directory = "";
    /**
     *  2.文件保存目录  E:/images/2020/03/15/
     *  如果目录不存在,则创建
     */
    File dir = new File(fileSavePath + directory);
    if (!dir.exists()) {
        dir.mkdirs();
    }
    log.info("图片上传,保存位置:" + fileSavePath + directory);
    //3.给文件重新设置一个名字
    //后缀
    String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
    String newFileName = UUID.randomUUID().toString().replaceAll("-", "") + suffix;
    //4.创建这个新文件
    File newFile = new File(fileSavePath + directory + newFileName);
    //5.复制操作
    try {
        file.transferTo(newFile);

        //协议 :// ip地址 :端口号 / 文件目录(/images/2020/03/15/xxx.jpg)
        String url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/service-pay" + "/images/" + directory + newFileName;
        log.info("图片上传,访问URL:" + url);
        CouponImageEntity imageEntity = new CouponImageEntity();
        imageEntity.setUrl(url);
        imageEntity.setRelativePath(File.separator+ "img"+File.separator + directory + newFileName);
        imageEntity.setRealPath(fileSavePath + directory + newFileName);

        couponImageService.save(imageEntity);

        return Result.success(url);
    } catch (IOException e) {
        return Result.error("500", e.getMessage());
    }
}