有一个具有特定语法的URL来下载文件。
http://www.hddownloader.com/?url=http://www.youtube.com/watch?v=N-HbxNtY1g8&feature=featured&dldtype=128
用户在文本框中输入文件名,然后按下下载button.In,即调用Response.WriteFile的单击事件,该事件将文件发送到客户端。
现在我想创建另一个带有页面的网站,在该页面中,用户输入文件名并按下载按钮下载该文件。
现在,我想使用第一个URL。我不想使用Response.Redirect,因为这样,用户就会知道我在使用mydownload.com。
我怎么能做到这一点。
一种方法是:当我们从微软的网站下载一些东西时,会出现一个小的弹出窗口(没有关闭、最大化和最小化按钮),然后就会出现保存对话框。
如何实现这个或另一个实现同样的?
发布于 2011-01-22 13:06:30
您可以首先使用WebClient.DownloadFile从服务器上的远程位置下载该文件。
using (var client = new WebClient())
{
client.DownloadFile("http://remotedomain.com/somefile.pdf", "somefile.pdf");
Response.WriteFile("somefile.pdf");
}或者,如果不希望将文件临时保存到磁盘,则可以使用DownloadData方法,然后将缓冲区流到响应中。
更新:
第二种方法的示例:
using (var client = new WebClient())
{
var buffer = client.DownloadData("http://remotedomain.com/somefile.pdf");
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment;filename=somefile.pdf");
Response.Clear();
Response.OutputStream.Write(buffer, 0, buffer.Length);
Response.Flush();
}https://stackoverflow.com/questions/4767936
复制相似问题