FileUpload控制元件學習

iDotNetSpace發表於2009-01-19
 FileUpload 控制元件顯示一個文字框控制元件和一個瀏覽按鈕,使使用者可以選擇客戶端上的檔案並將它上載到 Web 伺服器。使用者通過在控制元件的文字框中輸入本地計算機上檔案的完整路徑來指定要上載的檔案;也可以通過單擊“瀏覽”按鈕,然後在“選擇檔案”對話方塊中定位檔案來選擇檔案。

      使用者選擇要上載的檔案後,FileUpload 控制元件不會自動將該檔案儲存到伺服器。您必須顯式提供一個控制元件(例如,可以提供一個命令按鈕,當使用者單擊它時即可上載檔案。)

      該控制元件最主要的一個方法是SaveAs(string fileName),即將要從客戶端上指定的檔案上傳到web伺服器上指定的目錄下面。

      要注意的是:

      1.在上傳檔案前,應先驗證該FileUpload控制元件是否真正包含了計算機上的某個檔案,這個可以通過控制元件的HasFile屬性(bool值)達到驗證的目的。即:HasFile 返回 true,則表明存在該檔案,那麼就可以呼叫 SaveAs 方法,儲存檔案到web伺服器上。否則則向使用者顯示提示訊息,指明該控制元件不包含檔案(在測試中我們發現,就算控制元件中指明路徑,但是這個路徑本身不包括這個檔案時,返回值也為False

      2.如果我們要訪問從客戶端上傳來的檔案本身的資訊,可以通過FileUpload控制元件的PostedFile屬性,該屬性返回一個HttpPostedFile物件,利用該物件,就可以獲取檔案的大小(ContentLength屬性)、檔案的型別(ContentType屬性)、客戶端檔案的完整路徑(FileName).

       下面是用FileUpload控制元件上傳檔案的一個簡單示例:

        protected void Button1_Click(object sender, EventArgs e)
    {
        bool allowUpload = false;
        string[] extensionType ={ ".jpg", ".bmp", ".gif" };
        if (this.FileUpload1.HasFile)
        {
            //利用Path.GetExtension取得副檔名
            string fileExtension = Path.GetExtension(this.FileUpload1.FileName).ToLower();
            foreach (string var in extensionType)
            {
                if (fileExtension == var)
                {
                    allowUpload = true;
                    break;
                }
            }
            if (allowUpload)
            {
                string webPath = Server.MapPath("~" + "/上傳的檔案/");//注意:Sevver.MapPath("~")指明“根目錄”
                this.FileUpload1.SaveAs(webPath + this.FileUpload1.FileName);
                 HttpPostedFile fileInfo = this.FileUpload1.PostedFile;
                Label1.Text = "檔案上傳成功!
檔案大小為:"+fileInfo.ContentLength +"位元組
檔案型別為:"+fileInfo.ContentType +"
檔案路徑為:"+fileInfo.FileName;
           
            }
            else
            {
                this.Label1.Text = "檔案型別不對,請上傳檔案字尾為.jpg或.bmp或.gif等型別的圖片檔案";
            }
        }
        else
        {
            this.Label1.Text = "檔案不存在,請指定路徑!";
        }
    }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-541443/,如需轉載,請註明出處,否則將追究法律責任。

相關文章