我需要流式传输文件,这将导致在浏览器中保存为提示。问题是,该文件所在的目录已虚拟映射,因此我无法使用Server.MapPath确定其实际位置。该目录与网站不在同一位置(甚至不在实时服务器上)。
我想要以下内容,但这将允许我传递Web URL,而不是服务器文件路径。
我可能最终不得不从config基本路径构建我的文件路径,然后追加到路径的其余部分,但是希望我可以用这种方式代替。
var filePath = Server.MapPath(DOCUMENT_PATH);
if (!File.Exists(filePath))
return;
var fileInfo = new System.IO.FileInfo(filePath);
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", filePath));
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.WriteFile(filePath);
Response.End();