我需要流一个文件,这将导致保存为提示在浏览器中。 问题是,文件所在的目录实际上是映射的,因此我无法使用 Server。MapPath 来确定它的实际位置。该目录不在与网站相同的位置(甚至不在活动框中的物理服务器上)。
我想像下面这样的东西,但这将允许我传递一个网络 URL,而不是一个服务器文件路径。
我可能不得不最终从一个配置基路径构建我的文件路径,然后附加到路径的其余部分,但希望我可以这样做。
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();