我希望能够做到这一点:
Response.WriteFile ("http://domain/filepath/file.mpg")
但是,我得到这个错误:
Invalid path for MapPath 'http://domain/filepath/file.mpg'
A virtual path is expected.
该WriteFile
方法似乎不适用于 URL。有没有其他方法可以将 URL 的内容写入我的页面?
谢谢。
我希望能够做到这一点:
Response.WriteFile ("http://domain/filepath/file.mpg")
但是,我得到这个错误:
Invalid path for MapPath 'http://domain/filepath/file.mpg'
A virtual path is expected.
该WriteFile
方法似乎不适用于 URL。有没有其他方法可以将 URL 的内容写入我的页面?
谢谢。
如果您需要代码以这种方式工作,那么您必须首先将其动态下载到您的服务器上:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://domain/filepath/file.mpg");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream file = response.GetResponseStream();
从那时起,您将文件的内容作为一个流,并且您必须将字节读/写到响应中。
然而,我会提到,这不一定是最佳的——你会浪费你的带宽,因为每个文件都将使用比必要更多的资源。
如果可能,将文件移动到您的服务器,或者重新考虑您正在尝试执行的操作。
一个可能的解决方案是简单地使用:
Response.Redirect("http://domain/filepath/file.mpg")
但是,我不确定这是否是你真正想要做的。
基本上你有几个选择。您可以将文件下载到您的服务器并提供服务,Response.WriteFile
也可以重定向到实际位置。如果文件已经在您的服务器上,您只需提供文件系统路径Response.WriteFile
而不是 url,或者使用虚拟 url,方法是删除http://domain
.