ウェブページにリンクを表示するのではなく、対応するリンクをクリックしたときに直接ダウンロードしたい場合は、ヘッダー情報を強制的に設定する必要があります。
ファイルの強制ダウンロードを実現するために、文字化けを発生させないPHP関数の実装コードを共有します。
ファイルの強制ダウンロードを実装する PHP コードの例。
-
-
- /**
- * ダウンローダー
- *
- * @param $file
- * ファイルへのパス
- * @param $downloadfilename
- * (null|string) ダウンロードするファイルに使用する名前。
- * (現在のファイル名を使用して指定しないでください)
- *
- * @return file stream
- */ bbs.it-home.org
- function download_file($archivo, $downloadfilename = null) {
- if (file_exists($archivo)) {
- $downloadfilename = $downloadfilename !== null ? $downloadfilename :basename($archivo);
- header('Content-Description: ファイル転送');
- header('Content-Type: application/octet-stream');
- header ('Content-Disposition:attachment; filename=' . $downloadfilename);
- header('Content-Transfer-Encoding: binary');
- header('Expires: 0');
- header('Cache-Control: 必須- revalidate, post-check=0, pre-check=0');
- header('Pragma: public');
- header('Content-Length: ' . filesize($archivo));
- ob_clean();
- flash ();
- readfile($archivo);
- exit;
- }
- }
コードをコピー
|