Я работаю над скриптом, который позволяет скачивать файлы pptx и zip с помощью php, но этот скрипт ведет себя по-разному в разных браузерах. Я пробовал много скриптов, доступных в Интернете, но ничего не работало должным образом, поэтому я сделал это, чтобы собрать куски из разных сценариев.Как заставить загрузку файла во всех браузерах?
- светлячок => работает отлично
- Opera => Скачать файл как HTM файл
- Safari => 0kb Файл
- IE => Ловля старый файл
Мой код: -
// content type for pptx file
$ctype = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
$file = "http://www.abc.com/presentation.pptx";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: ".$ctype);
header("Content-Disposition: attachment; filename=\"".basename($file)."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
ob_clean();
flush();
readfile($file);
Как я могу заставить все браузеры надежно загрузить вместо того, чтобы отображать, казалось бы, случайное поведение выше?
Редактировать: Ниже приведен код, который работал для меня, я не уверен, в чем проблема, нежелательные заголовки или путь к файлу? Я сделал и изменения, и это сработало.
$ctype = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
$file = "Presentation3.pptx";
header("Pragma: public");
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: ".$ctype);
header("Content-Disposition: attachment; filename=\"".basename($file)."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile($file);
Что вы хотите сказать? – vascowhite
см. Мой ответ. Мне кажется, что это полезно для вас. Http://stackoverflow.com/questions/15893738/zip-file-downloading-as-php/15893990#15893990 –
@vascowhite: вопрос в том, что загрузка файлов работает по-разному в разных браузерах –