@shevchenko__k
Помогаю новорожденным web программистам

Как с помощью php скачать zip архив?

Помогите пожалуйста, не могу скачать средствами php zip архив который находится на сервере у меня.
вот что я пытался но все безрезультатно.
header('Content-type: application/zip');
                header('Content-Disposition: attachment; filename="'.basename($zipFile).'"');
                header("Content-length: " . filesize($zipFile));
                header("Pragma: no-cache");
                header("Expires: 0");

                ob_clean();
                flush();
                readfile($zipFile);
                unlink($zipFile);
                exit;

при выполнении действия ничего не скачивается и выдает кроказябры. как я понимаю сам файл zip
  • Вопрос задан
  • 973 просмотра
Решения вопроса 3
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
Почему nginx ставит 500 статус при отдаче файла скриптом?
Возможно вы пытаетесь кинуть заголовки, когда этого уже не возможно
Архив весит менее 2 gb?
Ответ написан
@slavabars
Веб программист
if (ob_get_level()) {
      ob_end_clean();
    }
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($zipFile));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($zipFile));
    readfile($zipFile);
    exit;
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Если вы просто хотите отдать файл, и у вас nginx, то лучше воспользоваться заголовком X-Accel-Redirect, чтобы попросить nginx этот файл отдать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы