0 レビュー
1 回答
PHPでファイルをダウンロードすることは、PDFでは機能しませんが、テキストファイルでは機能します
phpプログラムに新しい名前(new_name)でファイルを強制的にダウンロードしようとしています。ファイル名を変更していますが、拡張子はroginalファイルと同じです。これは私のコードの一部です:
$original_filename = "attachments/20180315.log";
$new_filename = "new_name." . pathinfo($original_filename, PATHINFO_EXTENSION);
header("Content-Length: " . filesize($original_filename));
header("Content-Transfer-Encoding: binary");
header('Content-Disposition: attachment; filename="' . $new_filename . '"');
header('Pragma: no-cache');
readfile($original_filename);
exit;
テキストファイルをダウンロードしているとき、ダウンロードは正常に機能しています(つまり、上記の例では20180315.logはテキストファイルです)。バイナリファイル(pdfなど)で同じことを行おうとすると、空のnew_name.pdfが表示されます。
何か提案はありますか?
わからない
0
レビュー
答え :
解決策:
必要な正確なヘッダーは少し乱雑でブラウザに依存することが常にわかっています。多くのオプションがあり、多くのバリエーションが投稿されているので、i次のことを提案しますが、正しくなるまでいくつかの組み合わせをテストする必要があるかもしれません。できるだけ多くのブラウザでテストすることをお勧めします。
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . $new_filename . "\"");
readfile($original_filename);
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。