C#實現Web檔案上傳的兩種方法(轉)

ba發表於2007-08-15
C#實現Web檔案上傳的兩種方法(轉)[@more@]  在Web程式設計中,我們常需要把一些本地檔案上傳到Web伺服器上,上傳後,使用者可以透過瀏覽器方便地瀏覽這些檔案,應用十分廣泛。

  那麼使用C#如何實現檔案上傳的功能呢?下面筆者簡要介紹一下。

  首先,在你的Visual C# web project 中增加一個上傳用的Web Form,為了要上傳檔案,需要在ToolBox中選擇HTML類的File Field控制元件,將此控制元件加入到Web Form中,然而此時該控制元件還不是服務端控制元件,我們需要為它加上如下一段程式碼:



,這樣它就成為服務端控制元件了,如果需要同時上傳數個檔案時,我們可以相應增加此控制元件。

  需要注意的是程式碼中一定要把
的屬性設定成為:



  如果沒有這個屬性,就不能實現上傳。

  然後在此Web Form中增加一個Web Form類的Button,雙擊Button新增如下程式碼:

//上傳圖片的程式段
DateTime now = DateTime.Now ;
//取現在時間到DataTime類的物件now中
string strBaseLocation = "D:webFCpic";
//這是檔案將上傳到的伺服器的絕對目錄
if (uploadfile1.PostedFile.ContentLength != 0)
//判斷選取對話方塊選取的檔案長度是否為0
{
uploadfile1.PostedFile.SaveAs(strBaseLocation+now.
DayOfYear.ToString()+uploadfile1.PostedFile.
ContentLength.ToString()+".jpg");
//執行上傳,並自動根據日期和檔案大小不同為檔案命名,確保不重複
Label1.Text="圖片1已經上傳,檔名為:"+now.DayOfYear.
ToString()+uploadfile1.PostedFile.ContentLength.ToString()+".jpg";
 navigator.Insert(System.Xml.TreePosition.After,
XmlNodeType.Element,"pic1","","") ;
navigator.Insert(System.Xml.TreePosition.FirstChild,
XmlNodeType.Text,"pic1","","") ;
navigator.Value= now.DayOfYear.ToString()+uploadfile1.
PostedFile.ContentLength.ToString()+".jpg" ;
navigator.MoveToParent() ;
}

  上面的程式碼用於筆者開發的一個使用XML檔案儲存新聞資訊的系統中,後面幾句程式碼作用是寫上傳檔案資訊到XML檔案中。如果要上傳其他型別檔案,只需要將jpg改為相應型別的字尾名即可,如改為doc即可上傳Word檔案,瀏覽器即可直接瀏覽上傳的Word檔案。

  【注意事項】

  1. 上傳檔案不可以無限大;

  2. 要注意IIS的安全性方面的配合;

  3. 用Visual Studio 的安裝專案做安裝程式的時候,請注意安裝程式所在的絕對路徑問題;

  4. 注意檔案上傳後的重名問題。

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

相關文章