springboot保存图片到项目路径并返回可访问的url地址

方法如下:

1、先定义访问地址(只包括协议、ip地址和端口号)

private  final String URL = "http://localhost:1111/";

2、通过String path = ClassUtils.getDefaultClassLoader().getResource("文件名").getPath();获取classes下的文件地址

3、连接URL和文件名构造url访问地址,连接path和文件名构造保存路径

@PostMapping("/single")
    public JSONResult singleImage(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws FileNotFoundException {  //参数名需与前端文件标签名一样
        //获取项目classes/static的地址
        String path = ClassUtils.getDefaultClassLoader().getResource("static").getPath();
        String fileName = file.getOriginalFilename();  //获取文件名
        //图片访问URI(即除了协议、地址和端口号的URL)
        String url_path = "image"+File.separator+fileName;
        log.info("图片访问uri:"+url_path);
        String savePath = path+File.separator+url_path;  //图片保存路径
        log.info("图片保存地址:"+savePath);
        File saveFile = new File(savePath);
        if (!saveFile.exists()){
            saveFile.mkdirs();
        }
        try {
            file.transferTo(saveFile);  //将临时存储的文件移动到真实存储路径下
        } catch (IOException e) {
            e.printStackTrace();
        }
        //返回图片访问地址
        log.info("访问URL:"+URL+url_path);
        return JSONResult.ok(URL+url_path);
    }

你可能感兴趣的:(springboot)