控制器中方法:
@RequestMapping(value = "/upload2")
public void uploadFile2(HttpServletRequest request, HttpServletResponse response) {
try {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
List<MultipartFile> fileList = multipartRequest.getFiles("file");
for (MultipartFile mf : fileList) {
if(!mf.isEmpty()){
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
jsp页面:
<form action="upload2" value="file" enctype="multipart/form-data" method="post" >
<div style="margin-bottom:10px;">
<input type="file" value="file" id="image" />
<input type="submit" value="提交" />
</div>
xml配置文件:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<property name="maxUploadSize" value="2000000000" />
</bean>
在控制器中multipartRequest.getFiles("file")获取的list为0,有大神知道问题出在哪吗?
jar包
CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar包:
Commons-fileupload.jar
Commons-io.jar
在springmvc.xml中
配置多媒体解析器
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
图片上传
controller:
//修改提交
@RequestMapping("/editItemSubmit")
public String editItemSubmit(Items items, MultipartFile pictureFile)throws Exception{
//原始文件名称
String pictureFile_name = pictureFile.getOriginalFilename();
//新文件名称
String newFileName = UUID.randomUUID().toString()+pictureFile_name.substring(pictureFile_name.lastIndexOf("."));
//上传图片
File uploadPic = new java.io.File("F:/develop/upload/temp/"+newFileName);
if(!uploadPic.exists()){
uploadPic.mkdirs();
}
//向磁盘写文件
pictureFile.transferTo(uploadPic);
.....
页面:
form添加enctype="multipart/form-data":
以前做过这个 是这么取文件吗multipartRequest.getFiles("file")
jsp写错了,文件控件不是value=“file”,而是name="file":
<input type="file" name="file" id="image" />
你这个好像缺东西呀 不知道是什么思路
也可能是缺少commons-fileupload.jar包
<dependency>
<artifactId>commons-fileupload</artifactId>
<groupId>commons-fileupload</groupId>
<version>1.3</version>
</dependency>
- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->
p:defaultEncoding="UTF-8"
p:maxUploadSize="5400000"
p:uploadTempDir="fileUpload/temp"
>
/beans:bean
你getFile的时候,调用的是页面上的name属性,你在页面上连name=“file”都没有,你怎么可以获取file呢?
1:前台
2:后台
public void uploadFile2(HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "file", required = true) MultipartFile file,) {
System.out.println(file.getSize());
System.out.println(file.getInputStream());
}
前端用jquery.fileupload.js插件,后端commons.fileupload解析
把 xml 配置里面的文件上传配置删除就可以了