2011-07-22 35 views
0

嗯,我解決了訪問PDF文件時內存不足的問題,但現在看起來,當我嘗試通過Chrome或Firefox訪問大文件時,我收到了亂碼。它不打開Adobe,只是將它顯示爲包含數百萬個字符的頁面。我使用下面的代碼來獲得它給用戶,爲什麼會這樣做的任何想法?Chrome和Firefox的PDF處理程序問題

case "PDF": 
    context.Response.ContentType = "application/pdf"; 
    context.Response.AddHeader("content-disposition", "inline; filename=" + asset.A_Name); 
} 

context.Response.BinaryWrite(content); 

回答

4

您必須將內容長度標題添加到響應中。它是IIS分塊編碼的一個問題。看看here

context.Response.AddHeader("Content-Length", fileInfo.Length.ToString());

+0

我實現了這一點,它適用於我的一些PDF,但它似乎仍然顯示大部分的亂碼。你有什麼想法會造成這種情況?我也嘗試在我的switch之前添加'Response.Clear()',它什麼都不做。 – atrljoe

+0

它在IE中有效嗎?也嘗試設置Response.Buffer = false。 –

+0

我試着添加緩衝區,而且什麼也沒做。它在IE中工作,但沒有其他瀏覽器。感謝您的幫助到目前爲止,您還有其他想法嗎? – atrljoe

0

是否有任何內容已寫入響應流?請務必先致電Response.Clear()