我有一个ASP.NET Web应用程序,我需要将网页中的数据放到输出文本文件中。 我想让用户能够选择保存文件的文件夹。例如,当用户点击“浏览”按钮时,应出现选择文件夹对话框。
是否有可能在asp.net Web应用程序中实现这样的东西?
谢谢,
塞吉
答案 0 :(得分:3)
使用<input type="file">
,用户只能浏览计算机上的文件。除非你给他一个列表或树视图结构,否则他无法在服务器上看到文件夹,以便他可以选择。这是构建这样一个树视图的example。
答案 1 :(得分: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.";
}
}
答案 2 :(得分:1)
此类下载对话框是特定于浏览器的。
使用Response.Write查看泛型处理程序,或者为此目的更好地编写Http Handler。