SpringBoot文件上传方式(二)

2023-12-21 00:37:14

前言:此文章献给项目需要打包jar包上传到服务器同学们

解决的问题?:我们一般的项目的文件下载只能在本地正常运行下载,但是打包成jar包后便无法进行下载,问题是找不到路径

话不多说上解决步骤:

第一步:

拦截器代码书写静态资源拦截处理

  @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/","file:static/");
        }

第二步骤

  @RequestMapping("/upload")
    public void upload(MultipartFile photo) throws IOException {
        //判断用户是否上传了文件
        if (!photo.isEmpty()) {
            String fileName = photo.getOriginalFilename();
            //获取项目路径
               String path = System.getProperty("user.dir")+"/static/upload/";
                File directory = new File(path);
                if(!directory.exists()){
                    directory.mkdirs();
                }
                String realPath = directory.getCanonicalPath();

            //限制文件上传的类型
            String contentType = photo.getContentType();
            if ("image/jpeg".equals(contentType) || "image/png".equals(contentType)) {
                File file = new File(realPath, fileName);
                //完成文件的上传
                photo.transferTo(file);
                System.out.println("图片上传成功!");
            } else {
                System.out.println("上传失败!");
            }
        } else {
            System.out.println("上传失败!");

        }
    }

此外还有一些默认的配置在application.properties(可以不写)

#是否开启文件上传支持,默认为true。
spring.servlet.multipart.enabled=true
#文件写入磁盘的阈值,默认为0。
spring.servlet.multipart.file-size-threshold=10
#上传文件的临时保存位置。
spring.servlet.multipart.location=C:\\Users\\Lenovo
#上传的单个文件的最大大小,默认为1MB。
spring.servlet.multipart.max-file-size=20MB
#多文件上传时文件的总大小,默认为10MB。
spring.servlet.multipart.max-request-size=10MB
#文件是否延迟解析,默认为false。
spring.servlet.multipart.resolve-lazily=false

文章来源:https://blog.csdn.net/weixin_62907807/article/details/135109594
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。