ホームページ  >  記事  >  バックエンド開発  >  指定された種類のファイルを強制的にダウンロードする PHP コード

指定された種類のファイルを強制的にダウンロードする PHP コード

WBOY
WBOYオリジナル
2016-07-25 09:00:35906ブラウズ
  1. //プロンプトダウンロード
  2. //site http://bbs.it-home.org
  3. function downloadFile($file){
  4. /*Alessio Delmonti によるコーディング*/
  5. $file_name = $file;
  6. $mime = 'application/force-download';
  7. header('Pragma: public') // required
  8. header('Expires: 0'); // キャッシュなし
  9. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  10. header('Cache-Control: private',false);
  11. header('Content-Type: '.$mime);
  12. header(' Content-Disposition: 添付ファイル名 = ".basename($file_name).'"');
  13. header('Content-Transfer-Encoding: binary');
  14. header('Connection: close');
  15. readfile($ file_name); // プッシュしてください
  16. exit();
  17. }
  18. ?>
コードをコピー

php はハイパーリンクをダウンロードする代わりにファイルをダウンロードするため、ホットリンクを減らすことができます。ファイルをブラウザに渡して、ブラウザにダウンロードさせます。

txtタイプを例に挙げてみましょう

txt ファイルがブラウザで直接開かれないようにするには、txt ファイルの名前をブラウザが認識しないファイル (rar など) に変更します。この場合、ブラウザは rar タイプのファイルを認識できないため、ユーザーはダウンロードのみ可能です。 上記の方法は場合によってはあまり適用できない場合があります。

クリックダウンロードの目的を達成するために、別の方法を使用してphpファイルのヘッダー情報を通じてドキュメントの形式を設定します。 例:

  1. //PHP ヘッダー関数によりダウンロードが強制されます
  2. // site bbs.it-home.org
  3. $filename = '/path/'.$_GET['file'].'。 txt'; // ファイルパス
  4. header("Content-Type: application/force-download");
  5. header("Content-Disposition:attachment; filename=".basename($filename));
  6. readfile($filename) ;
  7. ?>
コードをコピー

手順: 最初のヘッダー関数は、Content-Type の値を application/force-download に設定します。 2 番目のヘッダー関数は、ダウンロードするファイルを設定します。ここでの filename はパスを含まないファイル名であることに注意してください。 filename の値は、ダウンロードをクリックした後に表示されるダイアログ ボックス内のファイル名になります。パスがある場合は、表示されるダイアログ ボックス内のファイル名になります。上は不明です。 最後に、readfile 関数によってファイル ストリームがブラウザに出力され、txt ファイルのダウンロードが実現されます。



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