скачать как архив в Firefox не получая полное имя файла

я использую ZipArchive библиотека для загрузки содержимого в виде архива.
Проблема в том, что архивированный файл не получает полное имя, которое, как дано, заканчивается первым пробелом. Например: если я даю имя файла как «новый файл.zip»

header('Content-disposition: attachment; filename = new file.zip');

В то время как поиск в Google, я обнаружил, что просто поместив в кавычки имя файла решает проблему. Итак, я попробовал это:

header("Content-disposition: attachment; filename = 'new file.zip'");

но ничего не меняется, при загрузке имя файла меняется на «новый.zip», то, что я должен получить, это «новый файл.zip»

Проблема только с firefox

1

Решение

Установите тип контента как application/zip, application/octet-stream перед загрузкой файла и включением filename в двойных кавычках.

// We'll be outputting a ZIP
header('Content-Type: application/zip, application/octet-stream');

// It will be called new file.zip
header('Content-Disposition: attachment; filename="new file.zip"');

Если вы передадите переменную filename, у нее могут быть пробелы:

header("Content-Disposition", "attachment; filename=\"" . $fileName ."\"");

Обратите внимание, что filename окружен double quotesза RFC 2231. Это позволяет использовать расширенные символы в имени файла (то есть, международные символы).

1

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

Других решений пока нет …