成人免费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文件上傳

2020-10-26 14:03:07

混合云云計算云遷移

2012-07-17 09:16:16

SpringSSH

2009-06-25 15:26:25

Struts2教程struts.xml常

2009-06-04 08:34:24

Struts2配置struts.xml

2022-08-10 10:24:30

人工智能疫情數據架構

2009-03-09 11:27:55

2009-02-04 11:37:15

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-07-14 17:10:44

struts2webwork

2009-06-04 09:20:19

struts2 if標使用

2009-07-29 09:54:34

struts2和str
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久久久入口 | 99久久99| 成人在线观看欧美 | 国产精品欧美一区二区 | 久草福利 | 日韩欧美国产一区二区三区 | 国产999精品久久久久久 | 6996成人影院网在线播放 | www久久| 97精品一区二区 | 日韩三区在线观看 | 国产成人免费视频 | 久久久国产一区二区三区 | 欧美激情国产日韩精品一区18 | 国产精品久久久久久一区二区三区 | 日本精品视频一区二区 | 久久久精品天堂 | 精品国产一二三区 | 一本大道久久a久久精二百 欧洲一区二区三区 | 成人国产精品久久久 | 国产午夜精品一区二区三区四区 | 91色啪| 国产福利视频在线观看 | 一级毛片高清 | 2023亚洲天堂 | 成人av电影在线 | 一级欧美 | 国产乱码精品一品二品 | 亚洲精品视频在线 | 亚洲高清视频一区二区 | 国内精品伊人久久久久网站 | 九色国产| 狠狠骚 | 精品国产一区二区三区四区在线 | 国产色婷婷 | 成人中文字幕av | 国产精品久久久久久久久久不蜜臀 | 精品国产一区二区三区日日嗨 | 国产精品久久久久久久免费大片 | 不卡一区 | 天堂视频中文在线 |