ファイルのダウンロードについて
いつもお世話になっております。
ファイルのダウンロードについて質問です。
header('Content-Type: image/jpeg');
header('Content-Length: '.filesize($fpath));
header('Content-disposition: attachment; filename="'.$fname.'"');
readfile($fpath);
headerを使っています。
ダウンロードしたいファイルは
jpg,pdf,xls,xlsx,doc,ppt,などですが
それぞれ Content-Type は 拡張子 xlsなら header('Content-Type: application/vnd.ms-excel');
にと 変更しております。
エクセルを ダウンロードしますと、
「開こうとしているファイルは実際にはその拡張子が示すファイル形式ではありません。
このファイルを開く前にファイルが破損していないこと、信頼できる発行元からの
ファイルであることを確認してください。ファイルを今すぐ開きますか?」
とメッセージが出てきて、「はい」とすると
文字化けしたエクセルが開きます。
ワードですと、開いて修復しますかとエラーが出た後 ⇒OK⇒ 正しく開けます。
PDFだと 問題なく開きます。
エクセルとワードは 下記のように書きますと
<a href='files/ファイル名' target='_blank'>
正しく開くことができますが、この方法だと ダウンロードするファイル名を
変更できませんので、使うことができません。
上記のエラー解決方法はありますでしょうか。
また header 以外の方法で ファイル名を変更して ダウンロードする方法が
ありましたら 教えていただけませんでしょうか。
情報不足でしたらすみません。
よろしくお願いいたします。