Загрузка заголовка PHP повреждена ZIP-файл

У меня есть файл типа «983Y4938920820894838947» на моем сервере, и я бы хотел, чтобы пользователь сохранил его как «subject.zip».

Использование расположения заголовка делает загрузку работоспособной, и файл не поврежден.

Всякий раз, когда я использую заголовки с вложением, типом содержимого и новым именем файла, загружаемый zip-файл поврежден (я думаю?).

Всякий раз, когда я открываю файл ZIP (например, test.zip), он создает новый файл с именем test.zip.cpgz. Я предполагаю, что это способ Mac сказать, что файл поврежден.

Я использую следующий код

// Скачать ZIP файл

header("Content-Type: application/zip");
header('Content-Disposition: attachment; filename="' . stripslashes($new_filename) . '"');
readfile($filename);

Это делает файл поврежденным, в то время как приведенный ниже код работает отлично (но не меняет имя):

header("Location: $filename");

Я пробовал другие заголовки без какого-либо успеха. У кого-нибудь есть идеи? Спасибо!

1

Решение

Там вам не хватает заголовка, если вы не укажете длину содержимого, браузер не будет знать, каков размер файла:

header("Content-Length: {{replace.with.your.file.size}}");

Может быть, это решит ваши проблемы.

0

Другие решения

Проблема была в том, что у меня было эхо. Эхо испортило молнию. Поэтому имеет смысл, что он работал только с расположением заголовка, а не с обычными заголовками для изменения имени файла. Удаление эха исправило это для меня.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector