我試圖在用戶指定時顯示在我的網站上下文中顯示的PDF頁面。我有以下代碼:我怎麼能寫一個PDF到一個asp.net頁面?
if (context.User.Identity.IsAuthenticated)
{
string SampleURL = context.Request.CurrentExecutionFilePath; //CurrentExecutionFilePath;
context.Response.Buffer = true;
context.Response.Clear();
using (FileStream fs = new FileStream(SampleURL,FileMode.Open)) //System.IO.File.OpenRead(path))
{
int length = (int)fs.Length;
byte[] buffer;
using (BinaryReader br = new BinaryReader(fs))
{
buffer = br.ReadBytes(length);
}
context.Response.Clear();
context.Response.Buffer = true;
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(buffer);
context.Response.End();
}
}
else
{
context.Response.Redirect(
"~/Error/invalid_access.aspx");
}
唯一的問題是我無法讓PATH正常工作。 如果我直接通過URL調用PDF,它將是http://www.abc.com/reports/sample.pdf,但我無法讓自己回到那個位置。 我實現了一個HTTPHandler來防止有人轉到URL,但現在我需要將文件傳回瀏覽器並寫入它。
想法,意見,建議?
編輯: 它的PATH,我無法得到相對網址指向正確的位置。 context.Request.CurrentExecutionFilePath給了我「/www.abc.com/sample_reports/sample.pdf」,但我似乎無法扭轉,以便能夠打開/閱讀它
實際上它只是Server.MapPath正在把我扔掉。我們有另一個'服務器'命名空間ye'olde intellisense沒有給我這個.MapPath – 2011-03-02 01:47:41
只是FYI,很長一段時間扔我的東西是〜符號。 〜在Server.MapPath中不起作用。花了我多年的時間來弄清楚。哈哈 – 2011-03-02 03:11:33