PHPExcelでsave()したファイルは見れるけど、readfile()したファイルは形式が違うと表示され見れません。
//PHPExcelファイルの読み込み include_once ( __DIR__ . '/Classes/PHPExcel.php'); include_once ( __DIR__ . '/Classes/PHPExcel/IOFactory.php'); // Excel2007形式(xlsx)テンプレートの読み込み $reader = PHPExcel_IOFactory::createReader('Excel2007'); $excel = $reader->load( dirname(__FILE__) . '/template.xlsx' ); // シートの設定 $excel->setActiveSheetIndex(0);//何番目のシートか $sheet = $excel->getActiveSheet();//有効になっているシートを代入 // セルに値を入力 $sheet->setCellValue('A8', 'こんにちは!');//A1のセルにこんにちは!という値を入力 // Excel2007形式で出力する $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007'); $writer->save(dirname(__FILE__) . '/output.xlsx'); //↑ここまでは順調 //↓ここからがなんかおかしい $file_path = dirname(__FILE__) . 'output.xlsx';//ダウンロードさせるファイルのパス $file_name = 'output.xlsx';//ダウンロードさせるファイル名 header("Content-Type: application/octet-stream");//ダウンロードの指示 header("Content-Disposition: attachment; filename=$file_name");//ダウンロードするファイル名 header("Content-Length:".filesize($file_path));//ダウンロードするファイルのサイズ ob_end_clean();//ファイル破損エラー防止 readfile(dirname(__FILE__) . '/./' . $file_path);//ダウンロード
readfileしたやつ
開こうとすると
Excelファイル’○○○xlsx’を開くことができません。ファイル形式またはファイル拡張子が正しくありません。ファイルが破損しておらず、ファイル拡張子とファイル形式が一致していることを確認してください。
と表示される。
どうしたら良いか知恵を貸してください。
宜しくお願いします。
OS:win10
Excel:2013
readfile(dirname(FILE) . '/./' . $file_path);//ダウンロード
こちらが問題でした。
現在のディレクトリを2回表示させるという意味わからないことしてました。
これでOK。
readfile($file_path);
これでファイルは読み込めるようになりましたがまだ問題が残っていました。
ちゃんとエラーなく表示させたいのですが
分かる方いらっしゃいましたら、教えていただけるとありがたいです。
【追記】
ファイル名は同じです。
サイズが若干違います...

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/06 01:57
2016/07/06 02:34 編集
2016/07/06 02:40
2016/07/06 02:50
2016/07/06 03:03
2016/07/06 03:27