首先在maven中導(dǎo)入commons-io commons-fileupload依賴
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
1.前臺(tái)<form action="/file" method="post" enctype="multipart/form-data">
action method="post" enctype="multipart/form-data" 必須這樣寫朴上,在頁面中input標(biāo)簽的屬性一定要與SpringMvc接口方法的參數(shù)name保持一致,否則為null圈盔,在接收多個(gè)文件時(shí) 要加@RequestParam("name名") 區(qū)別接收孔厉,例如
<input type="file" name="file"/>
<input type="file" name="file2"/>
后臺(tái)代碼:
public void file(@RequestParam("file") MultipartFile file狼荞,@RequestParam("file1") MultipartFile file1){}
要是接收數(shù)組的話旨袒,前臺(tái)頁面input file的name要保持一致
<input type="file" name="file"/>
<input type="file" name="file"/>
后臺(tái)代碼:
public void file(@RequestParam("file") MultipartFile files){}
前臺(tái)提交使用 <input type="submit" value="上傳">
或給<form id="fo"> 指定一個(gè)id 在js 方法里調(diào)用 $("#id").sumbit();
2.在springMvc的配置文件里加上
<!-- 配置MultipartResolver 用于文件上傳 使用spring的CommosMultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/> //防止亂碼
<property name="maxUploadSize" value="1073741824"/>//限制上傳文件的總大小
</bean>
3.后臺(tái)實(shí)現(xiàn)上傳
public class FileController {
@RequestMapping("/test.do")
@ResponseBody
public String test(MultipartFile file,HttpServletRequest request) throws IOException{
System.out.println("comming!");
String path = request.getSession().getServletContext().getRealPath("/images");
System.out.println("path>>"+path);
String fileName = file.getOriginalFilename();
System.out.println("fileName>>"+fileName);
File dir = new File(path, fileName);
System.out.println("dir.exists()>>"+dir.exists());
if(!dir.exists()){
dir.mkdirs();
}
System.out.println("dir.exists()>>"+dir.exists());
// MultipartFile自帶的解析方法
file.transferTo(dir);
return "ok";
}
}