二、文件上传

简介
  • java中文件上传共涉及两个组件:CommonsMultiPartResolver和StandardServletMultipartResolver
  • Spring Boot提供的文件上传自动化配置类MultipartAutoCon:figuration 中,默认也是采用 StandardServletMultipartResolver 因此,在 Spring Boot 中上传文件甚至可以 做到零配置。下面来看具体上传过程。
单文件上传示例:

(1)创建一个是上传页面,上传接口是/upload,请求方法是post

(2)后端controller

@RestController
public class FileUploadController(){
    
    // 设置上传文件的日期
    SimpleDateFromat sdf = new SimpleDateFormat("yy-MM-dd");
    
    postMapping("/upload")
    public String upload(MultiPartFile uploadFile, HttpServletRequest req){
        // 规划上传文件的保存路径为项目运行目录下的uploadFile文件夹,并在文件夹中通过日期对上
        // 传的文件归类
        String realPath = 						     req.getSession().getServletContext().getRealPath("/uploadFile/");
        String formatDate = sdf.format(new Date());
        File foler = new File(realPath + format);
        if(!folder.isDirectory()){
            folder.mkdirs();
        }
        
        // 文件重命名,避免文件重名
        String oldName = uploadFile.getOriginalFilename();
        String newName = UUID.randomUUID().toString() + oldName.subString(oldName.lastIndexOf("."), oldName.length());
        
        //保存文件并生成上传文件的访问路径返回
        try{
            uploadFile.transferTo(new File(folder, newName));
            String filePath = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/uploadFile/" + formatDate + newName;
            return filePath;
        }catch(IOException e){
            e.printStackTrace();
        }
        retun "upload failed";
    }
}

(3)测试
在浏览器中输入http://localhost:8080/upload.html
在这里插入图片描述

上传成功之后返回上传文件的访问路径

(4)如果开发者需要对上传细节进行配置,在配置文件中添加代码
在这里插入图片描述在这里插入图片描述

多文件上传示例

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值