ホームページ  >  記事  >  バックエンド開発  >  PHP と Perl を使用してユーザーのブラウザで PDF ファイルを表示するにはどうすればよいですか?

PHP と Perl を使用してユーザーのブラウザで PDF ファイルを表示するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-19 18:13:30488ブラウズ

How to Display PDF Files in User Browsers with PHP and Perl?

PHP/Perl 経由でユーザーのブラウザーに PDF ファイルを表示する

この質問は、ユーザーのブラウザー内で PDF ファイルを表示し、クリック追跡を有効にする必要性に対処します。そして PDF の実際の場所を隠します。既存の PHP および Perl ソリューションは、PDF の作成や保存ダイアログのトリガーには役立ちますが、直接表示には役に立ちません。

PHP ソリューション

PDF を適切に表示するにはブラウザで、コードに次の調整を加えます:

<code class="php">header('Content-Disposition: inline; filename="the.pdf"');</code>

Perl ソリューション

同様に、Perl コードを調整して次の内容を含めます:

<code class="perl">print "Content-Disposition: inline; filename=\"the.pdf\"\n";</code>

その他の考慮事項

一部のブラウザでは、PDF が自動的にダウンロードされたり、外部アプリケーションで PDF が開かれたりします。これを防ぐために、次のヘッダーを PHP ソリューションと Perl ソリューションの両方に追加できます:

header('Content-Transfer-Encoding: binary');

解決済みの問題: 読み込み進行状況バー

読み込みの進行状況を表示するにはAdobe Reader X のバーに次のヘッダーを追加します:

header('Accept-Ranges: bytes');

解決された問題: 最終コード

完全に解決された最終的な PHP コードは次のとおりです:

<code class="php">$file = './path/to/the.pdf';
$filename = 'Custom file name for the.pdf'; /* Note: Always use .pdf at the end. */

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');

@readfile($file);</code>

この更新されたコードにより、必要に応じてクリック追跡と URL マスキングを使用して、PDF ファイルがユーザーのブラウザーで正しく表示されるようになります。

以上がPHP と Perl を使用してユーザーのブラウザで PDF ファイルを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。