成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

struts2文件上傳的采用的三種方式解析

開發 后端
上傳就是將信息從個人計算機(本地計算機)傳遞到中央計算機(遠程計算機)系統上,讓網絡上的人都能看到。將制作好的網頁、文字、圖片等發布到互聯網上去,以便讓其他人瀏覽、欣賞。這一過程稱為上傳。

文件上傳幾乎是每個項目實現的一個必須的模塊。

上傳就是將信息從個人計算機(本地計算機)傳遞到中央計算機(遠程計算機)系統上,讓網絡上的人都能看到。將制作好的網頁、文字、圖片等發布到互聯網上去,以便讓其他人瀏覽、欣賞。這一過程稱為上傳。

JAVA實現文件上傳的幾個組件:

1 SmartUpload 用的最多的一個組件,已經不再更新了,可以實現上傳和下載

2 FileUpload Apache實現的文件上傳組件,功能齊備

3 J2KUpload java2000實現的文件上傳組件,全部使用內存,適合多個不超過10M的小文件

下面具體說說FileUpload Apache實現的文件上傳組件。

1、/** 按copy方式上傳 */

Java代碼

  1. public String uploadFile(){     
  2.     /**保存的具體路徑*/    
  3.     String savepath = getSavePath();     
  4.     /**根據保存的路徑創建file對象*/    
  5.     File file = new File(savepath);     
  6.     if(!file.exists()){     
  7.         /**創建此文件對象路徑*/    
  8.         file.mkdirs();     
  9.     }     
  10.     try {     
  11.         /**使用的是:org.apache.commons.io.FileUtils FileUtils*/    
  12.         FileUtils.copyFile(pic, new File(file,getPicFileName()));     
  13.     } catch (IOException e) {     
  14.         e.printStackTrace();     
  15.     }     
  16.     return SUCCESS;     
  17. }  

 

備注:

1、getSavePath()方法中,ServletActionContext().getServletContext().getRealPath

(savePath+"\\"+getPicFileName()); ,這個主要是一個文件的實際路徑

2、我個人認為這種方式是簡單易用的。按copy方式上傳使用的是Apache公司的

org.apache.commons.io.FileUtils包里的FileUtils.java。

2、/** 按字節方式上傳 */

Java代碼

  1. public String uploadFile(){          
  2.     /** 文件的寫操作 */      
  3.     FileInputStream fis = null;      
  4.     FileOutputStream fos = null;     
  5.         /** 保存的路徑 */    
  6.     String savepath = getSavePath();     
  7.     /** 根據保存的路徑創建file對象 */    
  8.     File file = new File(savepath);     
  9.     /** file對象是否存在   */    
  10.     if (!file.exists()) {     
  11.         /** 創建此文件對象路徑  */    
  12.         file.mkdirs();     
  13.     }     
  14.     try {     
  15.         /** 創建輸入流 */    
  16.         fis = new FileInputStream(pic);     
  17.         /** 輸出流 更據文件的路徑+文件名稱創建文件對象 */    
  18.         fos = new FileOutputStream(file + "//" + getPicFileName());     
  19.         /** 讀取字節   */    
  20.         byte b[] = new byte[1024];     
  21.         int n = 0;     
  22.         /** 讀取操作   */    
  23.         while ((n = fis.read(b)) != -1) {     
  24.             /** 寫操作   */    
  25.             fos.write(b, 0, n);     
  26.         }     
  27.         /** 關閉操作  */    
  28.         if (fis != null) {     
  29.             fis.close();     
  30.         }     
  31.         if (fos != null) {     
  32.             fos.close();     
  33.         }     
  34.     } catch (Exception e) {     
  35.         e.printStackTrace();     
  36.     }     
  37.     return SUCCESS;     
  38. }   

 

3、/** 按字符方式上傳 即“三層管道” */

Java代碼

  1. public String uploadFile(){     
  2.     /** 文件的寫操作 */    
  3.     BufferedReader br =null;     
  4.     BufferedWriter bw = null;        
  5.     /** 保存的路徑 */    
  6.     String savepath = getSavePath();     
  7.     /** 根據保存的路徑創建file對象   */    
  8.     File file = new File(savepath);     
  9.     /** file對象是否存在  */    
  10.     if (!file.exists()) {                
  11.         /** 創建此文件對象路徑  */    
  12.         file.mkdirs();     
  13.     }     
  14.     try {     
  15.         /**   創建一個BufferedReader  對象*/    
  16.         br = new BufferedReader(new InputStreamReader(new FileInputStream     
  17.     
  18. (pic)));                 
  19.         bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream     
  20.     
  21. (file + "//" + getPicFileName())));     
  22.                  
  23.         // 讀取字節     
  24.         char b[] = new char[1024];     
  25.         int n = 0;     
  26.         // 讀取操作     
  27.         while ((n = br.read(b)) != -1) {     
  28.             // 寫操作     
  29.             bw.write(b, 0, n);     
  30.         }     
  31.         // 關閉操作     
  32.         if (br != null) {     
  33.             br.close();     
  34.         }     
  35.         if (bw != null) {     
  36.             bw.close();     
  37.         }     
  38.     } catch (Exception e) {     
  39.         e.printStackTrace();     
  40.     }     
  41.     return SUCCESS;     
  42. }   

 

備注:

第二種上傳方式沒有第三種上傳方式效率高。

建議:

***用***種方式上傳,次之使用第三種方式上傳,***再使用第二種方式上傳。

責任編輯:金賀 來源: 博客園
相關推薦

2009-06-04 09:41:50

struts2上傳文件

2009-06-25 15:50:03

Struts2教程上傳任意多個文件

2010-09-13 12:19:03

2009-02-04 14:00:59

2009-06-08 16:44:00

Struts2文件上傳

2012-07-17 09:16:16

SpringSSH

2020-10-26 14:03:07

混合云云計算云遷移

2022-08-10 10:24:30

人工智能疫情數據架構

2009-06-25 15:26:25

Struts2教程struts.xml常

2009-03-09 11:27:55

2020-11-01 17:10:46

異步事件開發前端

2021-11-05 21:33:28

Redis數據高并發

2019-11-20 18:52:24

物聯網智能照明智能恒溫器

2014-12-31 17:42:47

LBSAndroid地圖

2021-06-24 08:52:19

單點登錄代碼前端

2009-06-04 08:34:24

Struts2配置struts.xml

2010-03-12 17:52:35

Python輸入方式

2009-02-04 11:37:15

2009-11-05 10:12:12

2009-07-14 17:10:44

struts2webwork
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕第九页 | 日韩视频一区二区三区 | 天堂色综合| 午夜一区 | 人干人操| 拍真实国产伦偷精品 | 黄色av观看 | 亚洲电影一区 | 毛片免费看 | 日韩欧美在线观看 | 日日操夜夜干 | 狠狠夜夜 | 日韩欧美在线观看一区 | 国产激情综合五月久久 | 天天射网站| 成人国产精品色哟哟 | 欧美亚洲视频 | 精品av| 我想看一级黄色毛片 | 天天干亚洲 | 中文字幕av高清 | 99精品免费久久久久久久久日本 | 欧美日韩中文字幕在线 | 97在线超碰| 中文字幕一区二区三区四区五区 | 亚洲国产成人av好男人在线观看 | 国产精品成人一区二区三区夜夜夜 | 91社区在线观看 | 亚洲欧美一区二区三区国产精品 | 欧美精品一区在线发布 | 成人免费观看男女羞羞视频 | 91视频a | 日本a级大片 | 久久伊人亚洲 | 欧美成人在线影院 | 日韩一二区 | 美女黄网站视频免费 | 国产一区二区三区四区五区加勒比 | 中文字幕不卡在线观看 | 精品欧美一区免费观看α√ | 免费在线一区二区 |