上傳文件的處理細節、文件下載
ProgressListener顯示上傳進度
ProgressListener progressListener = new ProgressListener() {
public void update(long pBytesRead, long pContentLength, int pItems) {
System.out.println("到現在爲止, " + pBytesRead + " 字節已上傳,總大小爲 "
+ pContentLength);
}
};
upload.setProgressListener(progressListener);
以KB爲單位顯示上傳進度
long temp = -1; //temp注意設置爲類變量
long ctemp = pBytesRead /1024;
if (mBytes == ctemp)
return;
temp = mBytes;
多個文件上傳的javascript編碼
技巧:
每次動態增加一個文件上傳輸入框,都把它和刪除按紐放置在一個單獨的div中,並對刪除按紐的onclick事件進行響應,使之刪除刪除按紐所在的div。
如:
this.parentNode.parentNode.removeChild(this.parentNode);
Web應用中實現文件下載的兩種方式
超鏈接直接指向下載資源
程序實現下載需設置兩個響應頭:
設置Content-Type 的值爲:application/x-msdownload。Web 服務器需要告訴瀏覽器其所輸出的內容的類型不是普通的文本文件或 HTML 文件,而是一個要保存到本地的下載文件。
Web 服務器希望瀏覽器不直接處理相應的實體內容,而是由用戶選擇將相應的實體內容保存到一個文件中,這需要設置 Content-Disposition 報頭。該報頭指定了接收程序處理數據內容的方式,在 HTTP 應用中只有 attachment 是標準方式,attachment 表示要求用戶干預。在 attachment 後面還可以指定 filename 參數,該參數是服務器建議瀏覽器將實體內容保存到文件中的文件名稱。在設置 Content-Dispostion 之前一定要指定 Content-Type.
因爲要下載的文件可以是各種類型的文件,所以要將文件傳送給客戶端,其相應內容應該被當做二進制來處理,所以應該調用 方法返回 ServeltOutputStream 對象來向客戶端寫入文件內容。
private String id;
private String savename; //上傳文件的名稱,文件的uuid名
private String realName; //上傳文件的真實名稱
private String savepath; //記住文件的位置
private Date uptime; //文件的上傳時間
private String description; //文件的描述
private String username; //上傳人