struts2文件上傳采用的三種方式分別是什么

本篇文章給大家分享的是有關(guān)struts2文件上傳采用的三種方式分別是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

在白山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營銷型網(wǎng)站,外貿(mào)營銷網(wǎng)站建設(shè),白山網(wǎng)站建設(shè)費(fèi)用合理。

文件上傳幾乎是每個(gè)項(xiàng)目實(shí)現(xiàn)的一個(gè)必須的模塊。

上傳就是將信息從個(gè)人計(jì)算機(jī)(本地計(jì)算機(jī))傳遞到中央計(jì)算機(jī)(遠(yuǎn)程計(jì)算機(jī))系統(tǒng)上,讓網(wǎng)絡(luò)上的人都能看到。將制作好的網(wǎng)頁、文字、圖片等發(fā)布到互聯(lián)網(wǎng)上去,以便讓其他人瀏覽、欣賞。這一過程稱為上傳。

JAVA實(shí)現(xiàn)文件上傳的幾個(gè)組件:

1 SmartUpload 用的最多的一個(gè)組件,已經(jīng)不再更新了,可以實(shí)現(xiàn)上傳和下載

2 FileUpload Apache實(shí)現(xiàn)的文件上傳組件,功能齊備

3 J2KUpload java2000實(shí)現(xiàn)的文件上傳組件,全部使用內(nèi)存,適合多個(gè)不超過10M的小文件

下面具體說說FileUpload Apache實(shí)現(xiàn)的文件上傳組件。

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

Java代碼

public String uploadFile(){         /**保存的具體路徑*/        String savepath = getSavePath();         /**根據(jù)保存的路徑創(chuàng)建file對象*/        File file = new File(savepath);         if(!file.exists()){             /**創(chuàng)建此文件對象路徑*/            file.mkdirs();         }         try {             /**使用的是:org.apache.commons.io.FileUtils FileUtils*/            FileUtils.copyFile(pic, new File(file,getPicFileName()));         } catch (IOException e) {             e.printStackTrace();         }         return SUCCESS;     }

備注:

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

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

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

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

2、/** 按字節(jié)方式上傳 */

Java代碼

public String uploadFile(){              /** 文件的寫操作 */          FileInputStream fis = null;          FileOutputStream fos = null;             /** 保存的路徑 */        String savepath = getSavePath();         /** 根據(jù)保存的路徑創(chuàng)建file對象 */        File file = new File(savepath);         /** file對象是否存在   */        if (!file.exists()) {             /** 創(chuàng)建此文件對象路徑  */            file.mkdirs();         }         try {             /** 創(chuàng)建輸入流 */            fis = new FileInputStream(pic);             /** 輸出流 更據(jù)文件的路徑+文件名稱創(chuàng)建文件對象 */            fos = new FileOutputStream(file + "//" + getPicFileName());             /** 讀取字節(jié)   */            byte b[] = new byte[1024];             int n = 0;             /** 讀取操作   */            while ((n = fis.read(b)) != -1) {                 /** 寫操作   */                fos.write(b, 0, n);             }             /** 關(guān)閉操作  */            if (fis != null) {                 fis.close();             }             if (fos != null) {                 fos.close();             }         } catch (Exception e) {             e.printStackTrace();         }         return SUCCESS;     }

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

Java代碼

public String uploadFile(){         /** 文件的寫操作 */        BufferedReader br =null;         BufferedWriter bw = null;            /** 保存的路徑 */        String savepath = getSavePath();         /** 根據(jù)保存的路徑創(chuàng)建file對象   */        File file = new File(savepath);         /** file對象是否存在  */        if (!file.exists()) {                        /** 創(chuàng)建此文件對象路徑  */            file.mkdirs();         }         try {             /**   創(chuàng)建一個(gè)BufferedReader  對象*/            br = new BufferedReader(new InputStreamReader(new FileInputStream         (pic)));                         bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream         (file + "//" + getPicFileName())));                              // 讀取字節(jié)             char b[] = new char[1024];             int n = 0;             // 讀取操作             while ((n = br.read(b)) != -1) {                 // 寫操作                 bw.write(b, 0, n);             }             // 關(guān)閉操作             if (br != null) {                 br.close();             }             if (bw != null) {                 bw.close();             }         } catch (Exception e) {             e.printStackTrace();         }         return SUCCESS;     }

備注:

第二種上傳方式?jīng)]有第三種上傳方式效率高。

建議:

首先用第一種方式上傳,次之使用第三種方式上傳,最后再使用第二種方式上傳。

以上就是struts2文件上傳采用的三種方式分別是什么,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前文章:struts2文件上傳采用的三種方式分別是什么
文章鏈接:http://www.muchs.cn/article24/gjgpje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)、網(wǎng)站制作服務(wù)器托管、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)