从网上下载文件,然后使用保存文件对话框保存?

Posted

技术标签:

【中文标题】从网上下载文件,然后使用保存文件对话框保存?【英文标题】:Download file from web and then save with a save file dialog box? 【发布时间】:2013-11-14 07:48:55 【问题描述】:

如何下​​载文件,然后将其保存到我想要的任何位置?我正在使用 Windows 窗体、Web 应用程序。

我知道我可以用这个代码下载它:

WebClient wClient = new WebClient();
wClient.DownloadFile("WebLinkHere", @"C:\File.txt");

但我想要一个保存框,就像你按下 CTRL+S 时一样。

【问题讨论】:

你在使用 winforms\wpf 吗?那是一个网络应用程序吗?一些完整的场景将不胜感激。 我正在使用 Windows 窗体,是的,Web 应用程序! 【参考方案1】:

您可以使用SaveFileDialog 类。示例:

var dialog = new SaveFileDialog();
dialog.Filter = "Archive (*.rar)|*.rar";

var result = dialog.ShowDialog(); //shows save file dialog
if(result == DialogResult.OK)

    Console.WriteLine ("writing to: " + dialog.FileName); //prints the file to save

    var wClient = new WebClient();
    wClient.DownloadFile("WebLinkHere", dialog.FileName);

将显示下一个对话框,如果您搜索下一个文件夹

应用程序将打印:

writing to: C:\Temp\archiveName.rar

【讨论】:

如果我只想将它保存为.rar 怎么样? 刚刚做到了。感谢您的帮助!【参考方案2】:

这将起作用并打开文件下载弹出窗口。

String FileName = "FileName.xls";
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", string.Format("attachment; filename=0", FileName));
            Response.ContentType = "application/ms-excel";
            StringWriter stringWriter = new StringWriter();
            htmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
            Response.Write(stringWriter.ToString());
            Response.End();

【讨论】:

以上是关于从网上下载文件,然后使用保存文件对话框保存?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 下载大文件

ajax post下载文件/流

javaScript产生一个文件保存对话框

将文件从 Zip 保存到特定文件夹

js如何保存文件

c#将文件保存到桌面