質問
データベース(BYTE [])からユーザーにPDFを表示しようとしています。
以下のコードを使用してPDFをレンダリングしています。以下に示すように、バイナリテキストとしてPDFを与えています。 PDFアプリケーションで開く代わりに、PDFをテキストとしてレンダリングしています。
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
//Response.AddHeader("Content-Length", fileToDownload.Length.ToString());
//Response.AddHeader("Content-Disposition", "inline; name=RemoteUserGuide.pdf");
Response.AppendHeader("content-length", fileToDownload.Length.ToString());
Response.ContentType = "application/pdf";
Response.BinaryWrite(fileToDownload);
Response.Flush();
////Response.Close();
Response.End();
更新:このアプリケーションページは、ChromeでPDFを正しくレンダリングしていますが、IEでテキストを表示しています。 (テストするサーバーにFF3を持っていない)。おそらくそのいくつかのブラウザの問題はありますか?
解決
破損したAdobeインストールはこれを行います。ターゲット(クライアント)マシンにAdobe Readerを再インストールします。
Adobeインストーラーがクラッシュしてこれを行うことがあります。
他のヒント
あなたが確信しているなら、あなたのブラウザがPDFを表示できることは、あなたは使用する必要があります @PAGE ContentType="application/pdf"
の代わりに指令 Response.ContentType = "application/pdf";
また、を使用する必要があります Response.AddHeader("content-disposition", "filename=\"document.pdf\"" );
ファイル名を設定するため
IIS(インターネット情報サービス)の.pdf拡張機能のMIMEタイプが「アプリケーション/PDF」に設定されていることを確認してください。
他の人が言ったように、MIMEタイプ /ヘッダーをアプリケーション / PDFに設定してみてください。これがうまくいかない場合は、ブラウザを閉じて同じページを再開することです。FPDF(PHPのPDFジェネレーションライブラリでこの問題が発生しました。 )、ブラウザがページのマイム(PHP)をキャッシュし、ブラウザを閉じて再開することにより、永久に維持するように見えます。