我如何从asp.net Web应用程序中选择文件夹或文件?

我有一个ASP.NET Web应用程序,我需要将网页中的数据放到输出文本文件中。 我想让用户能够选择保存文件的文件夹。 例如,当用户单击“浏览”按钮时,应显示“选择文件夹”对话框。

是否有可能在asp.net Web应用程序中实现这样的东西?

谢谢,

谢尔盖

编辑:

看看你的评论,我认为你的意思是推送到响应流而不是?

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."; } } 

使用用户只能浏览计算机上的文件。 他没有办法在服务器上看到文件夹,除非你给他一个列表或树视图结构,以便他可以选择。 这是构建这样一个树视图的一个例子 。

此类下载对话框特定于浏览器。

看看使用Response.Write的generics处理程序,或者为了这个目的更好地编写Http Handler。