<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)

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲AV无码久久| 国产成人免费视频| 最近中文字幕mv手机免费高清| 中文国产成人精品久久亚洲精品AⅤ无码精品| 麻豆狠色伊人亚洲综合网站| 久久九九全国免费| 在线观看午夜亚洲一区| 青青青视频免费观看| 免费人成网站7777视频| 猫咪免费人成在线网站| 国产一级淫片视频免费看| 亚洲无吗在线视频| 真人做A免费观看| 亚洲国产精品日韩| 久久久久久亚洲av无码蜜芽| 成人免费无码精品国产电影| 亚洲人成色在线观看| 一区二区视频在线免费观看| 亚洲色自偷自拍另类小说| 免费一级全黄少妇性色生活片| 丁香五月亚洲综合深深爱| 美女扒开屁股让男人桶爽免费| 毛片在线看免费版| 亚洲综合成人网在线观看| 人与动性xxxxx免费| 亚洲国产精品无码久久久久久曰| 亚洲AV永久无码精品一福利| 免费国产a国产片高清网站| 亚洲欧洲无码一区二区三区| 午夜视频免费在线观看| 亚洲男人第一av网站| 99久久免费看国产精品| 亚洲字幕AV一区二区三区四区| 午夜高清免费在线观看| 一级毛片免费播放男男| 亚洲?v无码国产在丝袜线观看| 亚洲精品无码专区在线播放| 亚洲中文字幕视频国产| 成人免费区一区二区三区| 久久精品国产亚洲av影院| 91在线品视觉盛宴免费|