Spring|SpringMVC获得请求数据-文件上传

客户端表单实现 文件上传的三要素 表单项 type=“file”
表单的提交方式是post
表单的enctype属性是多部份表单形势, 及 enctype=“multipart/form-data”
Spring|SpringMVC获得请求数据-文件上传
文章图片

创建一个upload.jsp文件

Title - 锐客网
名称
文件


Spring|SpringMVC获得请求数据-文件上传
文章图片

文件上传原理 当form表单修改为多部份表单时,request.getParameter()将失效
enctype="multipart/form-data"时, form表单的正文内容格式是: key=value&key=value&key=value
当form表单的enctype取值为multipart/form-data时, 请求正文内容就变成多部份形式
Spring|SpringMVC获得请求数据-文件上传
文章图片

单文件上传
  1. 导入fileupload和io坐标
  2. 配置文件上传解析器
  3. 编写文件上传代码
导入fileupload和io坐标, 在pom.xml文件中导入
commons-fileupload commons-fileupload 1.3.1 commons-io commons-io 2.3

配置文件上传解析器, 在spring-mvc.xml上配置

编写文件上传代码
@Controller @RequestMapping("/user") public class UserController {@RequestMapping(value = "https://www.it610.com/quick22")//请求映射 @ResponseBody public void save22(String username, MultipartFile uploadFile) throws IOException { System.out.println(username); System.out.println(uploadFile); } }

Spring|SpringMVC获得请求数据-文件上传
文章图片

Spring|SpringMVC获得请求数据-文件上传
文章图片

如想把获得的文件转移到服务器或本机的某磁盘上
//获得文件上传名称 String originalFilename = uploadFile.getOriginalFilename(); uploadFile.transferTo(new File("E:\\upload\\"+originalFilename));

多文件上传 在单文件上传的基础上加就行了
Title - 锐客网
名称
文件
文件


@RequestMapping(value = "https://www.it610.com/quick22")//请求映射 @ResponseBody public void save22(String username, MultipartFile uploadFile, MultipartFile uploadFile2) throws IOException { //获得文件上传名称 String originalFilename = uploadFile.getOriginalFilename(); uploadFile.transferTo(new File("E:\\upload\\"+originalFilename)); //获得文件上传名称 String originalFilename2 = uploadFile.getOriginalFilename(); uploadFile.transferTo(new File("E:\\upload\\"+originalFilename2)); }

【Spring|SpringMVC获得请求数据-文件上传】如果上传的文件过多, 可以采用数组结合循环遍历的方式
@RequestMapping(value = "https://www.it610.com/quick23")//请求映射 @ResponseBody public void save23(String username, MultipartFile[] uploadFile) throws IOException { System.out.println(username); for (MultipartFile multipartFile : uploadFile) { String originalFilename = multipartFile.getOriginalFilename(); multipartFile.transferTo(new File("E:\\upload\\" + originalFilename)); } }

    推荐阅读