2

我希望能够做到这一点:

Response.WriteFile ("http://domain/filepath/file.mpg")

但是,我得到这个错误:

Invalid path for MapPath 'http://domain/filepath/file.mpg' 
A virtual path is expected.

WriteFile方法似乎不适用于 URL。有没有其他方法可以将 URL 的内容写入我的页面?

谢谢。

4

3 回答 3

3

如果您需要代码以这种方式工作,那么您必须首先将其动态下载到您的服务器上:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://domain/filepath/file.mpg");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream file = response.GetResponseStream();

从那时起,您将文件的内容作为一个流,并且您必须将字节读/写到响应中。

然而,我会提到,这不一定是最佳的——你会浪费你的带宽,因为每个文件都将使用比必要更多的资源。

如果可能,将文件移动到您的服务器,或者重新考虑您正在尝试执行的操作。

于 2010-02-03T18:44:32.500 回答
1

一个可能的解决方案是简单地使用:

Response.Redirect("http://domain/filepath/file.mpg")

但是,我不确定这是否是你真正想要做的。

于 2010-02-03T18:26:27.080 回答
0

基本上你有几个选择。您可以将文件下载到您的服务器并提供服务,Response.WriteFile也可以重定向到实际位置。如果文件已经在您的服务器上,您只需提供文件系统路径Response.WriteFile而不是 url,或者使用虚拟 url,方法是删除http://domain.

于 2010-02-03T18:26:07.203 回答