Springboot文件上传与下载

文件下载

public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
        try {
            request.setCharacterEncoding("UTF-8");
            String filename = request.getParameter("name");
            String mimeType = request.getServletContext().getMimeType(filename);
            response.setContentType(mimeType);
            response.setHeader("Content-Disposition", "attachment; filename="+filename);

            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\testzip\\"+filename));
            byte[] stream = new byte[1024];
            int len;
            ServletOutputStream outputStream = response.getOutputStream();

            while (true){
                len = bis.read(stream);
                if (len != -1){
                    outputStream.write(stream,0,len);
                }else {
                    break;
                }
            }

            outputStream.close();
            bis.close();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

文件上传(单、多文件都适用)

    @PostMapping("/upload")
    public String upload(@RequestParam("file") MultipartFile[] file) throws IOException {
       
        for (MultipartFile multipartFile : file) {
            //如果什么都没上传
            if (multipartFile.isEmpty()){
                return "file is null";
            }
            //获取上传的文件名
            String fileName = multipartFile.getOriginalFilename();
            //把客户上传的文件放入到指定的文件夹下
            String pathFile="C:\\testzip\\";
            //返回该文件的全路径
            String path = pathFile+fileName;
            //用全路径生成一个File对象
            File dest = new File(path);
            //将客户端上传的文件写入到dest中
            multipartFile.transferTo(dest);

        }
        return "success";
    }
    <form action="/upload" method="POST" enctype="multipart/form-data">
        文件上传:<input type="file" name="file" multiple="multiple"><br>
        <input type="submit" value="提交">
    </form>

对于上传文件的时候要注意一点:就是Springboot对上传文件的大小是有要求的,我们需要手动配置上传文件的大小
在application.yml中配置(针对springboot 2.X):

spring:
  servlet:
    multipart:
      max-file-size: 10MB  //是设置单个文件的大小
      max-request-size: 100MB//是设置单次请求的文件的总大小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值