SpringMVC18_文件上传6

花溪月影 / 2023-05-11 / 原文

十四、文件上传-客户端表单实现三要素

 文件上传客户端表单需要满足:

  • 表单项type=“file”
  • 表单的提交方式是post
  • 表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”

 form.xml

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="${pageContext.request.contextPath}/user/quick25" method="post" enctype="multipart/form-data">
        名称<input type="text" value="username"><br/>
        文件<input type="file" name="uploadFile"><br/>
        <input type="submit" value="提交">
    </form>
</body>
</html>

十五、文件上传-文件上传原理

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

 

 

十六、文件上传-单文件上传的代码实现1

 单文件上传步骤  

  1.导入fileupload和io坐标

  2. 配置文件上传解析器

  3. 编写文件上传代码

  代码实现:

 

 

十七、文件上传-单文件上传的代码实现2

  完成文件上传

 

十八、文件上传-多文件上传的代码实现

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

 

 

十九、知识要点

 1. MVC实现数据请求方式

  • 基本类型参数
  • POJO类型参数
  • 数组类型参数
  • 集合类型参数

 2. MVC获取数据细节

  • 中文乱码问题
  • @RequestParam 和 @PathVariable
  • 自定义类型转换器
  • 获得Servlet相关API
  • @RequestHeader 和 @CookieValue
  • 文件上传