я использую ZipArchive
библиотека для загрузки содержимого в виде архива.
Проблема в том, что архивированный файл не получает полное имя, которое, как дано, заканчивается первым пробелом. Например: если я даю имя файла как «новый файл.zip»
header('Content-disposition: attachment; filename = new file.zip');
В то время как поиск в Google, я обнаружил, что просто поместив в кавычки имя файла решает проблему. Итак, я попробовал это:
header("Content-disposition: attachment; filename = 'new file.zip'");
но ничего не меняется, при загрузке имя файла меняется на «новый.zip», то, что я должен получить, это «новый файл.zip»
Проблема только с firefox
Установите тип контента как 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. Это позволяет использовать расширенные символы в имени файла (то есть, международные символы).
Других решений пока нет …