2010-02-20 77 views
6

我有一個ASP.NET Web應用程序,我需要從網頁的數據到輸出文本文件。 我想讓用戶能夠選擇文件將被保存的文件夾。例如,當用戶點擊「瀏覽」按鈕時,應該出現選擇文件夾對話框。如何從asp.net web應用程序中選擇文件夾或文件?

是否有可能在asp.net web應用程序中實現這樣的事情?

感謝,

謝爾蓋

回答

2

編輯:

看你的評論,我想你的意思推到響應流呢?

protected void lnbDownloadFile_Click(object sender, EventArgs e) 
{ 
    String YourFilepath; 
    System.IO.FileInfo file = 
    new System.IO.FileInfo(YourFilepath); // full file path on disk 
    Response.ClearContent(); // neded to clear previous (if any) written content 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); 
    Response.AddHeader("Content-Length", file.Length.ToString()); 
    Response.ContentType = "text/plain"; 
    Response.TransmitFile(file.FullName); 
    Response.End(); 
} 

這應該在瀏覽器中顯示一個對話框,允許用戶選擇保存文件的位置。

你想用FileUpload控件

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.aspx

protected void UploadButton_Click(object sender, EventArgs e) 
    { 
    // Specify the path on the server to 
    // save the uploaded file to. 
    String savePath = @"c:\temp\uploads\"; 

    // Before attempting to perform operations 
    // on the file, verify that the FileUpload 
    // control contains a file. 
    if (FileUpload1.HasFile) 
    { 
     // Get the name of the file to upload. 
     String fileName = FileUpload1.FileName; 

     // Append the name of the file to upload to the path. 
     savePath += fileName; 


     // Call the SaveAs method to save the 
     // uploaded file to the specified path. 
     // This example does not perform all 
     // the necessary error checking.    
     // If a file with the same name 
     // already exists in the specified path, 
     // the uploaded file overwrites it. 
     FileUpload1.SaveAs(savePath); 

     // Notify the user of the name of the file 
     // was saved under. 
     UploadStatusLabel.Text = "Your file was saved as " + fileName; 
    } 
    else 
    {  
     // Notify the user that a file was not uploaded. 
     UploadStatusLabel.Text = "You did not specify a file to upload."; 
    } 

    } 
+0

不確定我需要FileUpload控件。這個控件使我能夠將文件上傳到服務器。我需要的是讓客戶端能夠在他的機器上選擇本地文件夾並將文件保存到此文件夾。我不需要上傳文件到服務器。我需要將文件保存在本地機器的指定文件夾中 – 2010-02-20 13:22:49

+0

已編輯的答案顯示如何將文件推送到響應流。 – hearn 2010-02-20 13:37:28

+0

感謝您的回答!那是我需要的。我能再問你一件事嗎?是否可以在沒有第一個窗口「打開或保存文件」的情況下顯示「選擇文件」對話框? – 2010-02-20 14:10:44

3

使用<input type="file">用戶只能瀏覽自己的計算機上的文件。沒有辦法讓他看到服務器上的文件夾,除非你給他一個列表或treeview結構,以便他可以選擇。這是建立這種樹視圖的example

+0

很好的答案!真的有幫助! – rofans91 2012-04-02 04:04:19

+0

謝謝。正在尋找這個。真的很有幫助。 – user1071979 2012-08-17 22:06:47

1

這樣的下載對話框是針對特定瀏覽器。

查看具有Response.Write的通用處理程序,或者更好地爲此目的編寫Http處理程序。

相關問題