Springboot打成jar包,图片上传失败

一开始我是放在resource下的,后来打包进行部署的时候,发现访问不了。我就知道是以前的问题。打成jar包的时候,访问不了jar包下的文件,所以需要和jar包放在同级的目录。

Springboot打成jar包,图片上传失败_第1张图片

  @Override  // 资源映射
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        //上传的图片在D盘下的OTA目录下,访问路径如:http://localhost:8081/OTA/d3cf0281-bb7f-40e0-ab77-406db95ccf2c.jpg
        //其中OTA表示访问的前缀。"file:D:/OTA/"是文件真实的存储路径
        String property = System.getProperty("user.dir");

        registry.addResourceHandler("/upload/**").addResourceLocations("file:" + property + "\\api\\src\\main\\resources\\upload\\");
//        registry.addResourceHandler("/upload/**").addResourceLocations("file:img/");
        registry.addResourceHandler("/upload02/**").addResourceLocations("file:" + property + "\\api\\src\\main\\resources\\upload02\\");
//        registry.addResourceHandler("/")
    }
    @PostMapping("")
    @ApiOperation(value = "11", notes = "22")
    public R<?> upload(MultipartFile file) throws IOException {
        String originalFilename = file.getOriginalFilename();// 获取上传的文件名
        System.out.println("originalFilename = " + originalFilename);
        int i = originalFilename.lastIndexOf("."); // 查看最后一个出现.的位置
        String houzui = originalFilename.substring(i);  // 截取 这个索引开始也就是.开始的后缀
        UUID uuid = UUID.randomUUID();
        String url = ConstantPropertiesUtils.ym
                + "://" + ConstantPropertiesUtils.ip + ":" + ConstantPropertiesUtils.port +
                "/upload/" + uuid + houzui;
        String rootFilePath = System.getProperty("user.dir") + "\\api\\src\\main\\resources\\upload\\" + uuid + houzui; // 上传到这
//        String path = System.getProperty("user.dir") + "/img/" + uuid + houzui;
//        System.out.println("rootFilePath = " + path);
        String property = System.getProperty("user.dir");
        System.out.println("property = " + property + "\\api\\main\\resouces\\upload");
        File file1 = FileUtil.writeBytes(file.getBytes(), rootFilePath);
        return R.success("成功", url);
    }
}

以下是主要配置
Springboot打成jar包,图片上传失败_第2张图片
Springboot打成jar包,图片上传失败_第3张图片
Springboot打成jar包,图片上传失败_第4张图片
如果是以这种方式在本地开发,那就需要将img目录放在springboot工程的同级目录
Springboot打成jar包,图片上传失败_第5张图片

你可能感兴趣的:(jar,spring,boot,java)