什么是MultipartFile
MultipartFile是spring類型,代表HTML中form data方式上傳的文件,包含二進制數據+文件名稱。【來自百度知道】
方法總結 |
|
---|---|
byte[] | getBytes() 以字節數組的形式返回文件的內容。 |
String | getContentType 返回文件的內容類型。 |
FileItem | getFileItem() 返回底層的org.apache.commons.fileupload.FileItem實例。 |
InputStream | getInputStream() 返回一個InputStream來讀取文件的內容。 |
String | getName() 以multipart 表格的形式返回參數的名稱。 |
String | getOriginalFileName() 返回客戶機文件系統中的原始文件名。 |
long | getSize() 以字節的形式返回文件的大小 |
String | getStorageDescription() 返回multipart的內容和存儲位置描述。 |
protected boolean |
isAvailable() 確定Multipart內容是否仍然可用。 |
boolean | isEmpty() 返回上傳的文件是否為空,也就是說,在多部分表單中沒有選擇任何文件,或者選擇的文件沒有內容。 |
void | transferTo(File dest) 將接收到的文件傳輸到給定的目標文件。 |
單文件上傳
前段HTML頁面:
JS處理,需要引用JQuery.js
FormData對象的使用
FormData對象用以將數據編譯成鍵值對,以便用XMLHttpRequest來發送數據。其主要用於發送表單數據,但亦可用於發送帶鍵數據(keyed data),而獨立於表單使用。如果表單enctype
屬性設為multipart/form-data ,則會使用表單的submit()方法來發送數據,從而,發送數據具有同樣形式。
可以創建一個FormData對象,然后調用它的append()方法來添加字段。
后台Java處理:
BufferedOutputStream(緩沖輸出流),繼承於FilterOutputStrema,它的作用是為另一個輸出流提供“緩沖功能”,該類實現一個緩沖輸出流。通過設置這樣的輸出流,應用程序可以將字節寫入底層輸出流,而不必為寫入的每個字節調用底層系統。
方法總結 | |
修飾符和類型 | 方法和描述 |
void | flush() 刷新此緩沖輸出流。 |
void | write(byte[] b,int off,int len) 從指定字節數組的偏移處開始將len字節寫入此緩沖輸出流。 |
void | write(int b) 將指定的字節寫入此緩沖輸出流。 |
多文件上傳:
與單文件差別不大:前端多個<input type="file">,后端接收的時候方法參數使用數組:
@RequestParam("param") MultipartFile [] file
參考:Multipart 官方API