【问题标题】:asp.net C# download file in ashx from external linkasp.net C# 从外部链接下载 ashx 中的文件
【发布时间】:2013-01-24 13:18:44
【问题描述】:

在使用 ashx 下载文件时需要一些帮助

我正在尝试从外部链接下载大文件(大约 2-4GB)(文件未存储在网络服务器上)

这是我的代码

context.Response.Clear();
context.Response.ContentType = "video/mp4";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
context.Response.Write("http://otherserver/file.m4v");
context.Response.Flush();
context.Response.Close();

下载的文件是1kb 我做错了什么? 还有其他下载文件的方法吗? 我正在尝试强制浏览器下载文件(并更改文件名)而不是在浏览器中预览

P.S 对不起我的英语;)

【问题讨论】:

    标签: c# asp.net ashx


    【解决方案1】:

    这是一种不正确的方法。文件内容为:

    http://otherserver/file.m4v
    

    您在此处设置的内容:

    context.Response.Write("http://otherserver/file.m4v");
    

    您需要使用的是HttpWebRequest Class

    【讨论】:

      【解决方案2】:

      您所做的只是向浏览器发送一个包含文本"http://otherserver/file.m4v" 的文件,其中的标题表明浏览器提供下载而不是显示该文件。

      当浏览器看到一个包含 URL 的文件时,它不会说“哦,我应该下载该 URL 上的任何内容”。

      此外,在谷歌上搜索了一下并查看了几个关于这个主题的PHPdiscussions,我认为没有办法在不将文件从远程 URL 流式传输到服务器的情况下做你想做的事,然后将其从您的服务器发送到客户端。

      您可以尝试添加标头,然后向客户端发送重定向,但我希望客户端在向远程 URL 发出请求时丢弃标头 - 并在浏览器中显示结果。

      【讨论】:

        猜你喜欢
        • 2011-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-17
        • 2021-04-02
        • 2015-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多