我正在开发允许用户下载文件的ASP.NET网站。用于通过HTTP传输文件的Response.TransmitFile的替代方案
以前的文件存储在同一服务器的网站上,所以我们可以这样做:
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
Response.AddHeader("Content-Length", response.ContentLength.ToString());
Response.ContentType = "application/octet-stream";
Response.TransmitFile(path);
Response.End();
但是,现在的一些文件存储在单独的服务器上。我可以确认,使用
WebRequest request = WebRequest.Create(absolute-url);
WebResponse response = request.GetResponse();
存在的文件,但我怎么能促进转移作为的TransmitFile需要一个虚拟路径而不是URL?
我需要的用户能够选择在那里将文件保存为一个正常的网络下载
什么是做到这一点的最好方法是什么?
我希望我不是太天真了。您可以提供超链接,其中包含其他服务器上的文件的URL(除非您想自己跟踪事情,或者希望在文件传输到客户端之前进行预处理)。 – shahkalpesh 2009-07-20 19:13:50