SpringBoot文件上传方式(二)

前言:此文章献给项目需要打包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

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值