-
- //プロンプトダウンロード
- //site http://bbs.it-home.org
- function downloadFile($file){
- /*Alessio Delmonti によるコーディング*/
- $file_name = $file;
- $mime = 'application/force-download';
- header('Pragma: public') // required
- header('Expires: 0'); // キャッシュなし
- header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
- header('Cache-Control: private',false);
- header('Content-Type: '.$mime);
- header(' Content-Disposition: 添付ファイル名 = ".basename($file_name).'"');
- header('Content-Transfer-Encoding: binary');
- header('Connection: close');
- readfile($ file_name); // プッシュしてください
- exit();
- }
- ?>
コードをコピー
php はハイパーリンクをダウンロードする代わりにファイルをダウンロードするため、ホットリンクを減らすことができます。ファイルをブラウザに渡して、ブラウザにダウンロードさせます。
txtタイプを例に挙げてみましょう
txt ファイルがブラウザで直接開かれないようにするには、txt ファイルの名前をブラウザが認識しないファイル (rar など) に変更します。この場合、ブラウザは rar タイプのファイルを認識できないため、ユーザーはダウンロードのみ可能です。
上記の方法は場合によってはあまり適用できない場合があります。
クリックダウンロードの目的を達成するために、別の方法を使用してphpファイルのヘッダー情報を通じてドキュメントの形式を設定します。
例:
-
- //PHP ヘッダー関数によりダウンロードが強制されます
- // site bbs.it-home.org
- $filename = '/path/'.$_GET['file'].'。 txt'; // ファイルパス
- header("Content-Type: application/force-download");
- header("Content-Disposition:attachment; filename=".basename($filename));
- readfile($filename) ;
- ?>
コードをコピー
手順:
最初のヘッダー関数は、Content-Type の値を application/force-download に設定します。
2 番目のヘッダー関数は、ダウンロードするファイルを設定します。ここでの filename はパスを含まないファイル名であることに注意してください。 filename の値は、ダウンロードをクリックした後に表示されるダイアログ ボックス内のファイル名になります。パスがある場合は、表示されるダイアログ ボックス内のファイル名になります。上は不明です。
最後に、readfile 関数によってファイル ストリームがブラウザに出力され、txt ファイルのダウンロードが実現されます。
|