国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

upload4j安全、高效、易用的javahttp文件上傳框架

2019-11-14 15:34:09
字體:
來源:轉載
供稿:網友

簡介

     

     upload4j是一款輕量級http文件上傳框架,使用簡單,實現高效,功能專一,擺脫傳統http文件上傳框架的繁瑣。 

     upload4j的誕生并不是為了解決所有上傳需求,而是專注于基礎通用需求。  

 

upload4j帶來的

     

     ·  實現直接文件流上傳、html表單流上傳兩種上傳模式。

     ·  io操作部分采用nio機制。

     ·  支持文件過濾,并且基于二進制文件頭進行過濾,而非傳統的文件擴展名過濾。

     ·  上傳文件大小不受內存大小限制。

 

upload4j給不了的

     

     ·  文件上傳進度。

     ·  批量上傳。

 

upload4j使用示例

 

直接文件流上傳

 

啟用過濾功能

 

 1 // 過濾器 2 MetaFilter metaFilter = new MetaFilter(); 3 metaFilter.add(".jpg", "FFD8FF");  // 允許的文件類型,params: 文件后綴名, 文件頭十六進制字符串 4 Map<String, String> metaMap = new HashMap<String, String>(); 5 metaMap.put(".png", "89504E47"); 6 metaFilter.fromMap(metaMap);  // 批量添加允許的文件類型 7  8 // 配置 9 MetaFilterConfig metaFilterConfig = MetaFilterConfig.custom().setBufferSize(8192)  // 默認8192B,單位B10                                                  .setMaxFileSize(1024 * 1024)  // 限制文件最大1M,單位B11                                                  .setFilter(metaFilter)  // 過濾器12                                                  .setRequest(request)  // 從request對象的body中讀取文件流13                                                  .setFileNameWithoutSuffix("123")  // 保存文件名(不帶擴展名,自動識別)14                                                  .setSavePath("/home/user1/upload/img/2015/09/24/");  // 保存路徑15 16 // 上傳17 StreamUpload streamUpload = new StreamUpload();18 SimpleUploadResponse response = streamUpload.upload(metaFilterConfig);19 20 // 上傳結果21 if(response.isSuccess()){  // 成功22     // 獲取文件保存完整路徑23     response.getFilePath();24     // ......25 }else{  // 失敗26     // 判斷失敗是否可控27     if(response.getException() == null){  // 可控28         // 獲取失敗原因29         response.getErrmsg();30         // ......31     }else{  // 不可控32         // 直接拋出異常33         throw response.getException();34     }35 }

 

不啟用過濾功能

 

 1 // 配置 2 StreamConfig streamConfig = StreamConfig.custom().setBufferSize(8192)  // 默認8192B,單位B 3                                                  .setMaxFileSize(1024 * 1024)  // 限制文件最大1M,單位B 4                                                  .setRequest(request)  // 從request對象的body中讀取文件流 5                                                  .setFileNameWithSuffix("123.jpg")  // 保存完整文件名(帶擴展名) 6                                                  .setSavePath("/home/user1/upload/img/2015/09/24/");  // 保存路徑 7  8 // 上傳 9 StreamUpload streamUpload = new StreamUpload();10 SimpleUploadResponse response = streamUpload.upload(streamConfig);11 12 // 上傳結果13 if(response.isSuccess()){  // 成功14     // 獲取文件保存完整路徑15     response.getFilePath();16     // ......17 }else{  // 失敗18     // 判斷失敗是否可控19     if(response.getException() == null){  // 可控20         // 獲取失敗原因21         response.getErrmsg();22         // ......23     }else{  // 不可控24         // 直接拋出異常25         throw response.getException();26     }27 }

 

html表單流上傳

 

啟用過濾功能

 

 1 // 過濾器 2 MetaFilter metaFilter = new MetaFilter(); 3 metaFilter.add(".jpg", "FFD8FF");  // 允許的文件類型,params: 文件后綴名, 文件頭十六進制字符串 4 Map<String, String> metaMap = new HashMap<String, String>(); 5 metaMap.put(".png", "89504E47"); 6 metaFilter.fromMap(metaMap);  // 批量添加允許的文件類型 7  8 // 配置 9 MetaFilterConfig metaFilterConfig = MetaFilterConfig.custom().setBufferSize(8192)  // 默認8192B,單位B10                                                  .setMaxFileSize(1024 * 1024)  // 限制文件最大1M,單位B11                                                  .setFilter(metaFilter)  // 過濾器12                                                  .setRequest(request)  // 從request對象的body中讀取文件流13                                                  .setFileNameWithoutSuffix("123")  // 保存文件名(不帶擴展名,自動識別)14                                                  .setSavePath("/home/user1/upload/img/2015/09/24/");  // 保存路徑15 16 // 上傳17 FormUpload formUpload = new FormUpload();18 SimpleUploadResponse response = formUpload.upload(metaFilterConfig);19 20 // 上傳結果21 if(response.isSuccess()){  // 成功22     // 獲取文件保存完整路徑23     response.getFilePath();24     // ......25 }else{  // 失敗26     // 判斷失敗是否可控27     if(response.getException() == null){  // 可控28         // 獲取失敗原因29         response.getErrmsg();30         // ......31     }else{  // 不可控32         // 直接拋出異常33         throw response.getException();34     }35 }

 

不啟用過濾功能

 

 1 // 配置 2 FormConfig formConfig = FormConfig.custom().setBufferSize(8192)  // 默認8192B,單位B 3                                                  .setMaxFileSize(1024 * 1024)  // 限制文件最大1M,單位B 4                                                  .setRequest(request)  // 從request對象的body中讀取文件流 5                                                  .setFileNameWithoutSuffix("123")  // 保存文件名(不帶擴展名,自動提取) 6                                                  .setSavePath("/home/user1/upload/img/2015/09/24/");  // 保存路徑 7  8 // 上傳 9 FormUpload formUpload = new FormUpload();10 SimpleUploadResponse response = formUpload.upload(formConfig);11 12 // 上傳結果13 if(response.isSuccess()){  // 成功14     // 獲取文件保存完整路徑15     response.getFilePath();16     // ......17 }else{  // 失敗18     // 判斷失敗是否可控19     if(response.getException() == null){  // 可控20         // 獲取失敗原因21         response.getErrmsg();22         // ......23     }else{  // 不可控24         // 直接拋出異常25         throw response.getException();26     }27 }

 

 

瀏覽upload4j項目

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥宁县| 衡阳市| 衢州市| 淮阳县| 湄潭县| 元阳县| 平武县| 六枝特区| 金山区| 平凉市| 龙南县| 荥经县| 石门县| 麻城市| 泰和县| 淳化县| 通许县| 军事| 都江堰市| 民县| 宽城| 沂南县| 通渭县| 准格尔旗| 隆昌县| 常州市| 安福县| 东平县| 耒阳市| 安图县| 抚宁县| 广西| 石泉县| 普兰店市| 宜黄县| 资兴市| 韶山市| 安远县| 平阳县| 杂多县| 漳平市|