Java進階之FileUpload完成上傳的實例
Java進階之FileUpload完成上傳的實例
FileUpload是Apache commons下面的一個子項目,用來實現(xiàn)Java項目下的文件上傳功能,常見的文件上傳還有SmartUpload,Servlet3.0,Struts2。
在這里我用的是commons- fileupload-1.2.1,下面就是一個簡單實例,解析過程都寫到代碼中的注釋上了,注釋很詳細
//創(chuàng)建磁盤文件項工廠
DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();
//設置緩沖區(qū)的大小,如果文件的大小超過了緩沖區(qū)的大小,就會產生臨時文件
diskFileItemFactory.setSizeThreshold(1024*1024*3);
//獲得核心解析類
ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory);
//解決中文文件名上傳亂碼
fileUpload.setHeaderEncoding("UTF-8");
//解析request,返回list集合
List<FileItem> list = fileUpload.parseRequest(request);
//獲得每個部分,將遍歷的值存入到一個map集合中
Map<String, String> map=new HashMap<>();
//設置上傳文件的文件名
String fileName=null;
for (FileItem fileItem : list) {
//判斷普通項和文件上傳項
if (fileItem.isFormField()) {
//普通項
String name=fileItem.getFieldName();
String value=fileItem.getString("UTF-8");
map.put(name, value);
}else {
//文件上傳項
//獲得文件名
fileName=fileItem.getName();
//獲得文件的輸入流
InputStream is=fileItem.getInputStream();
//獲得文件上傳的路徑
String path=this.getServletContext().getRealPath("/products/1");
OutputStream os=new FileOutputStream(path+"/"+fileName);
int len=0;
byte[] b=new byte[1024];
while ((len=is.read(b))!=-1) {
os.write(b, 0, len);
}
is.close();
os.close();
}
組件FileUpload使用FileItemFactory工廠創(chuàng)建新的文件項目。這個給了組件FileUpload很大的靈活性。這個工廠擁有怎樣創(chuàng)建項目的最終控制權。工廠執(zhí)行過程中上傳項目文件的臨時數(shù)據(jù)可以存儲在內存中或硬盤上。這個依賴于上傳項目的大小(即:數(shù)據(jù)的字節(jié))。不過這種行為可以在你的應用程序中適當?shù)淖远ㄖ啤?br />
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Java中使用fileupload組件實現(xiàn)文件上傳功能的實例代碼
- java使用common-fileupload實現(xiàn)文件上傳
- java組件commons-fileupload實現(xiàn)文件上傳、下載、在線打開
- Java組件commons fileupload實現(xiàn)文件上傳功能
- JavaEE組件commons-fileupload實現(xiàn)文件上傳、下載
- java組件commons-fileupload文件上傳示例
- java組件fileupload文件上傳demo
- java組件commons-fileupload實現(xiàn)文件上傳
- Java組件FileUpload上傳文件實現(xiàn)代碼
- JAVA使用commos-fileupload實現(xiàn)文件上傳與下載實例解析
相關文章
springCloud服務注冊Eureka實現(xiàn)過程圖解
這篇文章主要介紹了springCloud服務注冊Eureka實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04
IDEA利用自帶Axis工具和wsdl文件反向生成服務端客戶端代碼圖文詳解
這篇文章主要介紹了IDEA利用自帶Axis工具和wsdl文件反向生成服務端客戶端代碼詳細流程,在這里小編使用的是idea2021.1最新開發(fā)工具,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下2021-05-05

