так что это работает:
myphpfile.php:
<?php
header('Content-disposition: attachment; filename=myfile.pdf');
header('Content-type: application/pdf');
readfile('myfile.pdf');
?>
этот php-файл вызывается здесь, и загрузка PDF работает нормально :
<a class = "oglasavanje" href = "../../cjenik/myphpfile.php">download</a><br/>
, но это не работает:
<?php
header('Content-disposition: attachment; filename=myfile.xlsx');
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
readfile('myfile.xlsx');
?>
оба. Файлы pdf и.xlsx находятся в одной папке. Когда я нажимаю на ссылку «скачать», появляется окно загрузки, я сохраняю файл, но файл не открывается.Это дает мне следующую ошибку:
Excel не может открыть файл «myfile.xlsx», потому что формат файла или расширение файла недействительно. Убедитесь, что файл не был поврежден и что расширение файла соответствует формату файла.
Файл открывается нормально, когда я открываю его вручную (т.е. не скачивая его по ссылке)
Я использую WAMP, если это важно.
Любая помощь приветствуется.
---РЕДАКТИРОВАТЬ---
Я нашел этот фрагмент кода на php.net :
ob_clean();
flush();
, поэтому окончательный код выглядит так, и он работает:
$file = "myfile.xlsx";
header('Content-disposition: attachment; filename='.$file);
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Length: '. filesize($file));
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
ob_clean();
flush();
readfile($file);
Спасибо всем за ответы.