一、@MultipartConfig
使用@MultipartConfig 注解的servlet 可以調用request.getPart(String name) /request.getParts() ,獲取Multipart/form-data 請求的part組件
@MultipartConfig 的屬性
1、 fileSizeThreshold int 當數據量大于該值時,內容將被寫入文件,默認為0。
2、location String 存放生成的文件地址,文件目錄的絕對路徑
3、maxFileSize long 允許上傳的文件最大值。默認值為 -1,表示沒有限制。
4、maxRequestSize long 是 針對該 multipart/form-data 請求的最大數量,默認值為 -1,表示沒有限制。
servlet 支持的request.getParts() 方法
request.getParts() 方法返回全部part對象的集合,如果有多個輸入文件,則返回多個part對象。
也可以通過request.getPart(String name) 方法 獲取特定part對象
二、上傳文件
三、inputStream總結
<b>(1)從流中讀取數據</b>
int read() 讀取一個字節,返回值為所讀得字節
int read(byte b[]) 讀取多個字節,放置到字節數組b中,通常讀取的字節數量為b的長度,返回值為實際獨取的字節的數量。
int read(byte b[] ,int off,int len)讀取len個字節,放置到以下標off開始字節數組b中,返回值為實際讀取的字節的數量。
int available() 返回值為流中尚未讀取的字節的數量。
long skip(long n);讀指針跳過n個字節不讀,返回值為實際跳過的字節數量
(2)<b>關閉流</b>
close() 流操作完畢后必須關閉
(3)<b>使用輸入流中的標記</b>
void mark(int readlimit)紀錄當前指針的所在位置.readlimit表示讀指針讀出的readlimit個字節后所標記的指針位置才實效。
void reset() 把讀指針重新指向用mark方法所記錄的位置
boolean markSupported() 當前的流是否支持讀指針的記錄功能。