1.添加依赖
<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>
2.在springMVC配置类中注册MultipartResolver类,配置上传文件参数
@Bean
public MultipartResolver multipartResolver(){
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(10485760);
multipartResolver.setMaxInMemorySize(40960);
multipartResolver.setDefaultEncoding("UTF-8");
return multipartResolver;
}
3.请求表单的enctype指定为multipart/form-data类型
<form action="upload" enctype="multipart/form-data" method="post">
<input type="file" name="file"/><br/><br/>
<input type="submit" value="upload">
</form>
4.Controller接收参数类型MultipartFile
package com.lebron.springmvc;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class UploadController {
@ResponseBody
@RequestMapping(value="/upload",method=RequestMethod.POST)
public String upload(MultipartFile file){
try {
String contentType = file.getContentType(); //文件mime类型
String name = file.getName(); //表单中文件组件的名字
String filename = file.getOriginalFilename(); //文件全名
FileUtils.writeByteArrayToFile(new File("f:/upload/" + filename), file.getBytes());
return "success";
} catch (IOException e) {
e.printStackTrace();
}
return "error";
}
}