文件上传的三要素
1 表单项type=“file”
2表单的提交方式是post
3
文件上传的具体代码实现过程:
准备过程:首先我们先创建一个jsp文件:
记住文件上传的重点:方法必须是post,提交的时候必须是多部分表单。
第一步:导入fileupload和io坐标
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.3</version>
</dependency>
第二步:配置文件上传解析器
</bean>
<!-- 配置文件解析器-->
<bean id="MultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 指定文件的编码格式-->
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定上传文件的总大小-->
<property name="maxUploadSize" value="500000"/>
</bean>
第三步:编写文件上传代码
这里有个重点,实现代码的参数名称要与JSP文件的form表单上传文件的name要相同,不然无法传
@RequestMapping(value = "/quick22")
@ResponseBody
public void save22(String username, MultipartFile uploadFile) throws IOException {
System.out.println(username);
System.out.println(uploadFile);
//获得上传文件名称
String originalFilename = uploadFile.getOriginalFilename();
uploadFile.transferTo(new File("D:\\B站测试文件\\辅助文件\\upload\\" + originalFilename));
}
这里有个重点,实现代码的参数名称要与JSP文件的form表单上传文件的name要相同,不然无法传
效果:
多文件上传:
通过for循环来完成:
@RequestMapping(value = "/quick23")
@ResponseBody
public void save23(String username, MultipartFile[] uploadFile) throws IOException {
System.out.println(username);
for (MultipartFile multipartFile : uploadFile) {
String originalFilenamemu = multipartFile.getOriginalFilename();
multipartFile.transferTo(new File("D:\\B站测试文件\\辅助文件\\upload\\" + originalFilenamemu));
}
}
效果: