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