ASP.NET設計網絡硬盤之上傳文件
用戶最終是要和文件打交道的,文件夾僅僅是用來方便管理的。文件的上傳和下載也就成為“網絡硬盤”功能設計中的重要一環。
1、界面布置
這部分功能涉及到的控件主要有兩個:一個是(ID)為WebFile的File Field控件,用來瀏覽上傳文件路徑;另一個是(ID)為btnUpLoad的上傳按鈕,單擊它完成文件上傳。
2、代碼實現
在“設計”面板中雙擊btnUpLoad按鈕,為其添加事件處理,其代碼如下所示:
首先要判斷用戶是否選擇了要上傳的文件,這可以通過WebFile.PostedFile.FileName屬性來得到。需要說明的是:WebFile是一個File Field控件對象,該控件屬于HtmlInputFile類,HtmlInputFile.PostedFile方法用來獲取對客戶端上載文件的訪問。
在確定用戶選擇了要上傳的文件后,就要對其上傳的路徑進行設置。首先要得到該文件的文件名。由于用戶提供的是一個客戶端完整路徑,需要用Split()方法按“//”分隔符進行分割,結果保存在一個數組里。如:“C://UserDir//Chapter1//Ch1.doc”可以被分割為四部分,其最后一部分(數組最后一項)正是需要的文件的名稱。在上面的程序中,FileName[FileName.Length-1]即為用戶上傳的文件名。
得到上傳路徑后就可以進行上傳,這里用到PostedFile.SaveAs()方法。完成上傳后,調用LoadDir()方法就可以顯示出剛才上傳的文件名。
運行時單擊“瀏覽”按鈕,將出現如圖16-5所示的對話框。選定文件后,單擊“確定”按鈕完成文件上傳工作。
1、界面布置
這部分功能涉及到的控件主要有兩個:一個是(ID)為WebFile的File Field控件,用來瀏覽上傳文件路徑;另一個是(ID)為btnUpLoad的上傳按鈕,單擊它完成文件上傳。
2、代碼實現
在“設計”面板中雙擊btnUpLoad按鈕,為其添加事件處理,其代碼如下所示:
| private void BtnUpload_Click(object sender, System.EventArgs e) { if(WebFile.PostedFile.FileName=="") { Info.Text="請先選擇要上傳的文件"; return; } try { char[] spliter = {'\'}; string [] FileName = WebFile.PostedFile.FileName.Split(spliter,10); string FullPath = CurrentPath + @"" + FileName[FileName.Length-1]; //生成完整文件名 WebFile.PostedFile.SaveAs(FullPath); //保存文件 LoadDir(CurrentPath); //重新載入當前目錄 } catch { Info.Text="上傳文件失敗,請與管理員聯系"; } } |
首先要判斷用戶是否選擇了要上傳的文件,這可以通過WebFile.PostedFile.FileName屬性來得到。需要說明的是:WebFile是一個File Field控件對象,該控件屬于HtmlInputFile類,HtmlInputFile.PostedFile方法用來獲取對客戶端上載文件的訪問。
在確定用戶選擇了要上傳的文件后,就要對其上傳的路徑進行設置。首先要得到該文件的文件名。由于用戶提供的是一個客戶端完整路徑,需要用Split()方法按“//”分隔符進行分割,結果保存在一個數組里。如:“C://UserDir//Chapter1//Ch1.doc”可以被分割為四部分,其最后一部分(數組最后一項)正是需要的文件的名稱。在上面的程序中,FileName[FileName.Length-1]即為用戶上傳的文件名。
得到上傳路徑后就可以進行上傳,這里用到PostedFile.SaveAs()方法。完成上傳后,調用LoadDir()方法就可以顯示出剛才上傳的文件名。
運行時單擊“瀏覽”按鈕,將出現如圖16-5所示的對話框。選定文件后,單擊“確定”按鈕完成文件上傳工作。
![]() 圖“瀏覽”要上傳的文件 |
