SpringMVC获得请求数据(文件上传)

1.文件上传客户端三要素

  • 表单项type=“file”
  • 表单的提交方式是post
  • 表单的enctype属性是多部分表单形式,即enctype=“multipart/form-data”
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"%>

    
        Title
    
    
        
名称:
文件:

2.文件上传原理

  • 当form表单修改为多部分表单时,request.getParameter()将失效
  • enctype="application/x-www-form-urlencoded"时,form表单的正文内容格式是:key=value&key=value&key=value
  • 当form表单的enctype取值为multipart/form-data时,请求正文内容就变成多部分形式

3.单文件上传步骤

  • 导入fileupload和io坐标

  commons-fileupload
  commons-fileupload
  1.4


  commons-io
  commons-io
  2.11.0
  • 配置文件上传解析器


    
    
    
    
    
    
  • 编写文件上传代码
@RequestMapping("/quick19")
@ResponseBody
public void save19(String name, MultipartFile file) throws IOException {
    System.out.println(name);
    // 获得文件名称
    String originalFilename = file.getOriginalFilename();
    // 保存文件
    file.transferTo(new File("E:\\JavaWorkSpace\\upload\\" + originalFilename));
}

4.多文件上传实现

多文件上传,只需要将页面修改为多个文件上传项,将方法参数MultipartFile类型修改为MultiFile[]即可。

名称:
文件1:
文件2:
@RequestMapping("/quick20")
@ResponseBody
public void save20(String name, MultipartFile[] uploadfiles) throws IOException {
    System.out.println(name);
    for (MultipartFile uploaFile : uploadfiles) {
        String originalFilename = uploaFile.getOriginalFilename();
        uploaFile.transferTo(new File("E:\\JavaWorkSpace\\upload\\" + originalFilename));
    }
}

你可能感兴趣的:(Java,Web开发,maven,java,tomcat,spring,vscode)