我需要流的文件,這將導致保存在瀏覽器的提示。 的問題是,該文件所在的目錄中被虛擬地映射,所以我無法使用,以使用Server.Mappath確定它的實際位置。該目錄與網站不在同一位置(或者甚至是活動框上的物理服務器)。下載/從URL流文件 - asp.net
我想類似的追隨者,但是,讓我通過一個Web 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();
你能否詳細說明你的意思「虛擬映射」什麼位?虛擬IIS文件夾可通過URL訪問? – EventHorizon 2011-04-08 15:08:44
它使用VPP路徑,這是EpiServer使用的概念CMS 我們設置虛擬路徑名稱(即「/ documents /」),然後指定它應該映射的物理路徑(即「//服務器名稱/文檔」 )。系統然後在運行時創建對該目錄的此引用。您可以通過網址瀏覽文件而不會出現問題 – mp3duck 2011-04-08 15:46:12
文件名確實是通過URL訪問的。我需要使用此URL來流式傳輸文件,而不是服務器路徑,因爲我無法從URL中使用MapPath來修改此文件 – mp3duck 2011-04-08 15:48:31