首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Response.WriteFile

Response.WriteFile
EN

Stack Overflow用户
提问于 2011-01-22 13:02:03
回答 1查看 12.9K关注 0票数 4

有一个具有特定语法的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。

我怎么能做到这一点。

一种方法是:当我们从微软的网站下载一些东西时,会出现一个小的弹出窗口(没有关闭、最大化和最小化按钮),然后就会出现保存对话框。

如何实现这个或另一个实现同样的?

EN

回答 1

Stack Overflow用户

发布于 2011-01-22 13:06:30

您可以首先使用WebClient.DownloadFile从服务器上的远程位置下载该文件。

代码语言:javascript
复制
using (var client = new WebClient())
{
    client.DownloadFile("http://remotedomain.com/somefile.pdf", "somefile.pdf");
    Response.WriteFile("somefile.pdf");
}

或者,如果不希望将文件临时保存到磁盘,则可以使用DownloadData方法,然后将缓冲区流到响应中。

更新:

第二种方法的示例:

代码语言:javascript
复制
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();
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4767936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档