spring boot如何上传文件

前端部分

    <!--请求方式必须为post-->
    <!--enctype="multipart/form-data"必须有-->
<form method="post" action="/up/load" enctype="multipart/form-data">
    <!--name属性的值必须跟后端参数值保持一致-->
    <input type="file" name="filename">
    <input type="submit" value="上传">
</form>

tips:

  • 请求方式必须为post(其实不确定,反正不能是get~)
  • enctype="multipart/form-data"必须有

后端部分

@RequestMapping("/load")
    public String upload(MultipartFile filename) throws IOException {
        //获取文件上传路径
        String realpath = ResourceUtils.getURL("classpath:").getPath() + "static/File";
        System.out.println(realpath);
        //判断路径是否存在,不存在则创建
        File file = new File(realpath);
        if(!file.exists()){
            file.mkdirs();
        }
        //上传
        filename.transferTo(new File(file,filename.getOriginalFilename()));
        return "redirect:/OK";
    }

tips:

  • MultipartFile 参数名必须和前端name属性保持一致

修改文件名上传版本

@RequestMapping("/upload")
    public String upload(MultipartFile filename,HttpSession session) throws IOException {
        //防止空上传报错
        if(filename.isEmpty()){
            return "redirect:/show/all";
        }
        //获取上传用户的id
        User user = (User) session.getAttribute("user");
        //获取文件后缀
        String oldFilename = filename.getOriginalFilename();
        String ext = oldFilename.substring(oldFilename.lastIndexOf("."), oldFilename.length());
        //文件大小
        long size = filename.getSize();
        //文件类型
        String type = filename.getContentType();
        //改名
        String newFilename = new SimpleDateFormat("yyyyMMdd").format(new Date())+ UUID.randomUUID().toString().replaceAll("-","")+ext;
        //获取文件路径
        String realpath = ResourceUtils.getURL("classpath:").getPath()+"static/files";
        //按照日期放文件
        String dateDir =realpath+"/"+new SimpleDateFormat("yyyyMMdd").format(new Date());
        //获取文件对象
        File file = new File(dateDir);
        //判断是否存在此文件目录,不存在则创建
        if(!file.exists()){
            file.mkdirs();
        }
        //上传
        filename.transferTo(new File(dateDir,newFilename));
        //上传成功后返回查询方法
        return "redirect:/show/all";
    }
    ```
    


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值