2011-08-09 68 views
1

我有一個項目,我得到我想要保存在本地的文件位置strings的列表。我想用FileUploader這樣做。我想這樣的事情至今:使用FileUpload C#

  FileUpload filesaver = new FileUpload(); 

      //Iterate over each files (InputFiles is a linked list of file locations) 
      foreach (string File in InputFiles) 
      { 
       //Get file 
       Stream fileLoaded = OpenFile(File); 

       filesaver.FileContent = fileLoaded; 

       //Save file      
       filesaver.SaveAs(DownloadLocation); 

       //Code...} 

的問題是,filesaver.FileContent = fileLoaded;不是一個有效的調用(FileContent是隻讀)。

如何獲取文件到文件加載器,以便我可以保存它,如果我有該文件位置的字符串?

編輯我使用the FileUpload Class

+0

你使用的是asp.net文件上傳? –

+0

你是在asp.net還是windows窗體?如果你想將文件保存到某個位置,你不能使用流? –

+0

asp.net。我正在使用[this](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.aspx) –

回答

1

的ASP.NET FileUploader有客戶端的文件發送到服務器端。它不會將文件路徑作爲字符串發送,因此無法攔截文件路徑並在服務器端「上傳」。如果那是你的意圖,你就不會找到從這裏到達的途徑。

如果你想保存實際的文件二進制位,一旦它到達服務器,有很多例子將數據保存到數據庫或文件系統。

如果您嘗試以字符串的形式獲取路徑,文件上傳並不是您的最佳選擇,但請注意,文件路徑字符串(如果它們是客戶端本地的)在服務器端無用。

1

你可以使用:

If (filesaver.HasFile) 
{ 
     filesaver.SaveAs("C:\YourFilePath\" & filesaver.FileName); 
} 
+0

這不會回答用戶遇到的問題。 –

+0

這將工作?即使我沒有將文件設置爲filesaver? –

+0

當您在ASP.NET中設置FileUpload時,該文件將在那裏。按照您鏈接頁面上的代碼示例進行操作。 –