<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 0,  comments - 6,  trackbacks - 0


    監聽文件上傳進度

    如果你希望可以上傳很大的文件,這時,你可能想將上傳的狀態告訴用戶,如已經接收了多少。 

    觀察上傳進度需要通過一個處理監聽器來實現。

    public class UploadProgressListener implements ProgressListener {

    /**

     * pBytesRead,到目前為止已經讀取的字節數 

     * pContentLength,上傳文件的總長度

     * pItems,正在處理第幾個文件項(0 = 一個項目還沒處理, 1 = 第一個項目正在被讀取, ...

     */

    public void update(long pBytesRead, long pContentLength, int pItems) {

    System.out.println("我們正在讀取文件項目 " + pItems);

            //pContentLength == -1,說明無法得到總數據長度

    if (pContentLength == -1) {

    System.out.println("到目前為止已經讀取了 " + pBytesRead + 字節的數據。");

    else {

    System.out.println("到目前為止已經讀取了" + pContentLength 

    中的 "+ pBytesRead + 字節");

    }

    }

    }

    上面這個監聽器是有問題的。因為它會非常頻繁地被調用。這會帶來性能問題。一個比較好
    的解決辦法是減少調用。如下代碼,為監聽器類增加一個
    kiloBytes實例屬性,其值默認為-1,每當
    pBytesRead/1024的結果變化時(即以KB為單位增加時),將新的計算結果賦值給kiloBytes,然后
    更新上傳進度信息,否則什么都不做,直接返回。這樣就可以減少信息更新的次數。如果上傳的
    文件非常大時,可以將KB單位改為MB,進一步減少信息更新的次數。

    public class UploadProgressListener implements ProgressListener {

    private long kiloBytes = -1;

    /**

     * pBytesRead,到目前為止已經讀取的字節數 

     * pContentLength,上傳文件的總長度

     * pItems,正在處理第幾個文件項(0 = 一個項目還沒處理, 1 = 第一個項目正在被讀取, ...)

     */

    public void update(long pBytesRead, long pContentLength, int pItems) {

    long kBytes = pBytesRead / 1024;// 1KB

    if (kiloBytes == kBytes) {

    return;

    }

    kiloBytes = kBytes;

    System.out.println("我們正在讀取文件項目 " + pItems);

            //pContentLength == -1,說明無法得到總數據長度

    if (pContentLength == -1) {

    System.out.println("到目前為止已經讀取了 " + pBytesRead + 字節的數據。");

    else {

    System.out.println("到目前為止已經讀取了" + pContentLength 

    中的 "+ pBytesRead + 字節");

    }

    }

    }

        在服務器端,我們只需設計一個對象,將進度信息封裝到這個對象中,再將該對象保存在用戶會
    話中,利用上面示例代碼不斷的更新這個對象的狀態。

        在客戶端,我們可以每隔n秒鐘發起一次ajax請求,到會話中獲取文件上傳進度信息,直到上傳完
    畢。


    鄭州蜂鳥科技有限公司 申林 QQ:38185398  鄭州軟件開發興趣小組群:38236716

    學軟件開發,到蜂鳥科技!超強的師資力量 、完善的課程體系 、超低的培訓價格 、真實的企業項目。

    地址:鄭州市文化路豐產路口東50米豐產路21號SOHO世紀城西塔20樓F
    電話:0371-63839606  手機:13838505572(申老師) 13673990036 (許老師)
    QQ: 1073422643  1群:47614738 2群:108157678 
    網址:www.ntcsoft.com

    posted on 2010-09-03 23:59 whistler 閱讀(1599) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(2)

    我參與的團隊

    文章檔案(22)

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 国产免费播放一区二区| 99久9在线|免费| 日韩黄色免费观看| 亚洲人成77777在线播放网站不卡| 24小时日本电影免费看| 精品无码一区二区三区亚洲桃色| 99精品视频在线视频免费观看| 亚洲AV无码乱码在线观看裸奔| 久久久99精品免费观看| 亚洲精品在线播放视频| 97在线观看永久免费视频| 在线精品亚洲一区二区| 国产成人无码免费视频97 | 亚洲邪恶天堂影院在线观看| 无码AV片在线观看免费| 亚洲第一成年人网站| 无码免费午夜福利片在线| 中日韩亚洲人成无码网站| 国产hs免费高清在线观看| www一区二区www免费| 国产香蕉九九久久精品免费| 亚洲一区二区无码偷拍| 免费日韩在线视频| 久久久受www免费人成| 久久久亚洲精品视频| 国产一卡2卡3卡4卡2021免费观看 国产一卡2卡3卡4卡无卡免费视频 | 国产性生大片免费观看性| 91天堂素人精品系列全集亚洲| 91香蕉成人免费网站| 国产产在线精品亚洲AAVV| 亚洲色精品aⅴ一区区三区| 59pao成国产成视频永久免费 | 亚洲午夜无码久久久久| 免费看片在线观看| 亚洲AV成人一区二区三区观看 | 国产亚洲精品无码专区| 在线观看的免费网站无遮挡| 色偷偷噜噜噜亚洲男人| 亚洲AV区无码字幕中文色| 夭天干天天做天天免费看| 精品亚洲成在人线AV无码|