目录
1.3.1 配置文件上传解析器dispatch-servlet.xml
1.3.3 后台ProductController.java
一、单文件上传
在SpringMVC学习笔记(一)中改进(那时商品显示已有图片这个属性,只是没有用,注释掉了)
1.1 本地创建文件夹
该文件夹作为上传图片的存放位置,自定义
1.2 idea配置虚拟路径
1.3 代码演示
1.3.1 配置文件上传解析器dispatch-servlet.xml
<!--文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<!--5*1024*1024 五兆-->
<value>5242880</value>
</property>
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
</bean>
1.3.2 页面 addProduct.jsp
把原来代码图片属性注释去掉,修改一下即可
提交方式必须是post(post才支持图片、视频等大文件,以二进制形式传输)
1.3.3 后台ProductController.java
在原来的基础上加上文件上传代码和设置Product的图片属性值即可
1.3.4 展示showProduct.jsp
代码详见SpringMVC学习笔记(一)
1.3.5 结果演示
二、多文件上传
多文件上传在于页面中每个文件name一样方便传值,后台接收的是一个数组,然后遍历处理
2.1 页面:uploadFiles.jsp
<body>
<form method="post" action="uploadFiles.do" enctype="multipart/form-data">
<input type="file" name="img"/><br><br>
<input type="file" name="img"/><br><br>
<input type="file" name="img"/><br><br><br>
<input type="submit" value="点击上传">
</form>
</body>
2.2 后台
// 跳转到多文件上传
@RequestMapping("files")
public String files(){
return "uploadFiles";
}
// 文件上传
@RequestMapping("uploadFiles")
public string fileUpload(MultipartFile []img) throws IOException {
if (img!=null){
for (MultipartFile file : img) {
//1、设置图片路径
String originalFilename = file.getOriginalFilename();
String path="C:\\Users\\dell\\Pictures\\upload\\"+originalFilename;
//2、转存图片
file.transferTo(new File(path));
}
return "success"
}
return "error"
}
2.3 结果展示
页面:
上传前:
上传后:
注意:有的时候多文件上传可能会报错,可以加上注解@RequestParam("img")看看