download または js の window.location = 'file path/file name' のみを使用し、ファイルの種類がブラウザによって認識される場合、ブラウザは、「.txt」、「.conf」、「.bin」ファイルなどのファイルをダウンロードするためにダウンロード ボックスをポップアップ表示する代わりに、ファイルを直接開きます。もちろんjsのdocument.execCommand('SaveAs','mycodes.txt')(第二引数は保存するファイル名)でもダウンロードできますが、互換性が悪くFirefoxでは無効です。現時点で、お使いの環境が php 言語をサポートしている場合は、header() を使用してファイルをダウンロードできます:
まず簡単な例を見てみましょう:
同じディレクトリに、index.php、test.php とダウンロード可能なファイル adam.txt の 2 つのファイルがあります。
test.php ファイルの内容:$ファイル名 = $ファイル名 = 'adam.txt';
echo "ダウンロード";
?>
index.php ファイルの内容:
$ファイル名 = $_REQUEST['ファイル名'];
header("Content-Type:text/plain");
header('Content-Disposition:attachment;filename='.$filename);
header('コンテンツ転送エンコーディング: バイナリ');
readfile($filename);
test.phpを開いてダウンロードをクリックすると、adam.txtファイルがダウンロードされます。
同様に、.jpg、.zip、.rar、.pdf、その他のファイルもダウンロードできます。この場合、index.php のヘッダー ("Content-Type: text/plain") を少し変更するだけです。以下に示すように
header("Content-Type:application/zip");//zip または rar
header("Content-Type:application/pdf");//pdf
header("Content-Type:image/jpeg");//画像
header("Content-Type:audio/mpeg");
アダムボーイより抜粋