asp.net C# 从外部链接下载 ashx 中的文件

本文关键字:ashx 文件 下载 链接 net 从外部 asp | 更新日期: 2023-09-27 17:55:51

在使用 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我做错了什么?还有其他下载文件的方式吗?我正在尝试强制浏览器下载文件(并更改文件名)而不是在浏览器中预览

附言为我的英语;)

asp.net C# 从外部链接下载 ashx 中的文件

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

http://otherserver/file.m4v

您在此处设置:

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

你需要使用的是 HttpWebRequest 类。

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

浏览器中没有任何魔术导致它在看到包含 URL 的文件时说"哦,我应该下载该 URL 上的任何内容"。

此外,在谷歌搜索并查看了关于这个主题的几个 PHP 讨论之后,我认为没有一种方法可以做你想做的事情,而不是从远程 URL 流式传输到您的服务器,然后将其从您的服务器发送到客户端。

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