1. Maven 工程引入所需要的依賴包
2. 頁面需要開放多媒體標簽
3. 配置文件上傳試圖解析器
4. 接收圖片信息,通過 IO 流寫入磁盤(調用解析其中的方法即可)
如下:
1.1 引入所依賴的jar包
1 <dependency>
2 <groupId>commons-io</groupId>
3 <artifactId>commons-io</artifactId>
4 <version>2.4</version>
5 </dependency>
6 <dependency>
7 <groupId>commons-fileupload</groupId>
8 <artifactId>commons-fileupload</artifactId>
9 <version>1.3.1</version>
10 </dependency>
2.1 頁面需要開放多媒體標簽
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>上傳多個文件 實例</h2>
<form action="/upload/filesUpload" method="post" enctype="multipart/form-data">
<p>選擇文件:<input type="file" name="files"></p>
<p>選擇文件:<input type="file" name="files"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
3.1 配置文件上傳試圖解析器
<!-- 多部分文件上傳 -->
<!--id的名字只能為multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--配置編碼格式-->
<property name="defaultEncoding" value="utf-8"></property>
<!--配置文件上傳大小-->
<property name="maxUploadSize" value="10485760000"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>
4.1 編寫controller,實現文件上傳
@Controller
public class FileController {
//實現了文件上傳入門案例
@RequestMapping("/file")
//MultipartFile 解析器參數
public String file(MultipartFile fileImage) throws IllegalStateException, IOException{
/*
* 公共接口MultipartFile
擴展了InputStreamSource
在多部分請求中接收的上載文件的表示。
文件內容存儲在內存中或臨時存儲在磁盤上。
在任何一種情況下,如果需要,用戶負責將文件內容復制到會話級或持久性存儲。
臨時存儲將在請求處理結束時清除。
*/
//創建fileDir對象,"E:/jt-upload"這個內容可以是文件也可以是文件夾
File fileDir = new File("E:/jt-upload");
//1.判斷文件夾是否存在
if(!fileDir.exists()){
//不存在的話,創建文件夾
fileDir.mkdirs();
}
//fileImage.getOriginalFilename() 獲取文件名字
String fileName = fileImage.getOriginalFilename();
//實現文件的上傳
fileImage.transferTo(new File("E:/jt-upload/"+fileName));
//適用重定向技術
return "redirect;/file.jsp";
//z轉發
// return "forword:/file.jsp";
}
}