MultipartFile文件上传
一、配置文件:
SpringMVC 用的是 的MultipartFile來進行文件上傳 所以我們首先要配置MultipartResolver:用于處理表單中的file。在springmvc.xml中進行配置,目錄結構如下:
其中屬性詳解:
defaultEncoding="UTF-8"?是請求的編碼格式,默認為iso-8859-1
maxUploadSize="5400000"?是上傳文件的大小,單位為字節
uploadTempDir="fileUpload/temp"?為上傳文件的臨時路徑
二、創建一個簡單的上傳表單:
<body> <h2>文件上傳實例</h2> <form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data"><input type="file" name="img"></br><input type="submit" value="上傳"> </form> </body>注意要在form標簽中加上enctype="multipart/form-data"表示該表單是要處理文件的,這是最基本的東西,很多人會忘記然而當上傳出錯后則去找程序的錯誤,卻忘了這一點。
三、編寫上傳控制類
1、創建一個控制類: FileUploadController和一個返回結果的頁面list.jsp
2、編寫提交表單的action:
3、使用SpringMVC注解RequestParam來指定表單中的img參數;
4、指定一個用于保存文件的web項目路徑
5、通過MultipartFile的transferTo(File dest)這個方法來轉存文件到指定的路徑。
到此基本的文件上傳就結束了。
MultipartFile類常用的一些方法:
String getContentType()//獲取文件MIME類型
InputStream getInputStream()//后去文件流
String getName()?//獲取表單中文件組件的名字
String getOriginalFilename()?//獲取上傳文件的原名
long getSize()??//獲取文件的字節大小,單位byte
boolean isEmpty()?//是否為空
void transferTo(File dest)?//保存到一個目標文件中
四、多文件上傳。
多文件上傳其實很簡單,和上傳其他相同的參數如checkbox一樣,表單中使用相同的名稱,然后action中將MultipartFile參數類定義為數組就可以。
接下來實現:
1、創建一個上傳多文件的表單:
<body> <h2>文件上傳實例</h2> <form action="${pageContext.request.contextPath}/fileUpload" method="post" enctype="multipart/form-data"><input type="file" name="img"></br><input type="file" name="img"></br><input type="file" name="img"></br><input type="submit" value="上傳"> </form> </body>2、編寫處理表單的action
//多文件上傳@RequestMapping("fileUpload")@ResponseBodypublic String file(@RequestParam("img") MultipartFile[] img) throws IOException {for (int i = 0; i <img.length ; i++) {//上傳圖片名稱String originalFilename = img[i].getOriginalFilename();//上傳路徑File file = new File("E:\\upload\\" + originalFilename);if(!file.exists()){file.mkdir();}//將內存中的文件上傳到磁盤img[i].transferTo(file);}return "success";}?
總結
以上是生活随笔為你收集整理的MultipartFile文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: srt编辑的文件在linux显示乱码,解
- 下一篇: mysql判断不等于空的脚本_Shell