Java 图片上传及访问

本项目部署的方式是单纯的jar形式。而且图片的上传和下载保存在本地。不想依托于七牛云等其他文件服务器。
所以图片上传保存的路径是项目的根目录。访问时通过映射到图片路径下。

/**
 * 上传文件
 */
public static String uploadFile(MultipartFile file) throws IOException {
    // 文件上传路径,相对路径
    String filePath = System.getProperty("user.dir")+File.separator+"upload";
    // 获取文件名
    String fileName = file.getOriginalFilename();

    // 获取文件的后缀名
    String suffixName = fileName.substring(fileName.lastIndexOf("."));

    // 解决中文问题,liunx下中文路径,图片显示问题
    fileName = UUID.randomUUID() + suffixName;

    File fileDir  = new File(filePath);
    // 检测是否存在目录
    if (!fileDir.exists()) {
        fileDir.mkdirs();
    }
    // 构建真实的文件路径
    File dest = new File(fileDir.getAbsolutePath() + File.separator + fileName);
    try {
        file.transferTo(dest);
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    fileName = "/upload/" + fileName;
    return fileName;
}

###图片路径映射
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    // /upload/**为前端URL访问路径 后面为本地磁盘映射
    // System.getProperty("user.dir")为当前项目所在路径
    registry.addResourceHandler("/upload/**").addResourceLocations("file:" +System.getProperty("user.dir")+ File.separator+"upload"+File.separator);
}
image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容