#php #firefox #download
#php #firefox #Скачать
Вопрос:
Я использую класс загрузки, который я нашел здесьhttp://www.phpclasses.org/package/3220-PHP-Serve-files-for-download-with-resume-support.html чтобы позволить ppl загружать mp3-файлы.
Это отлично работает во всех браузерах, кроме Firefox (во всех версиях).
Когда я загружаю mp3-файл, используя этот класс в Firefox, он загружает файлы без расширения .mp3. что может быть причиной этого и как я могу это исправить?
Комментарии:
1. Действительно ли файлы передаются сервером в формате mp3?
2. да, они подаются как mp3-файлы, но в этом классе загрузки есть функция переименования, которую я использую
Ответ №1:
Похоже, что для Firefox, чтобы сохранить файл с расширением, вы должны заключить имя файла в кавычки.
header('Content-Disposition: attachment; filename="'.$file.'"');
Ответ №2:
Пожалуйста, проверьте еще раз имя файла. Если загружаемый файл содержит 1 символ, это пробел (» «) Пример: «шаблон import.xls «. Firefox выдаст ошибку, что при загрузке отсутствует расширение. Вы можете использовать функцию replace(«», «»») для устранения этой проблемы с помощью asp.net:
HttpContext.Current.Ответ.AddHeader(«содержимое-расположение», «вложение; filename=» ReportName.Заменить(» «, «»»));
Ответ №3:
Без какого-либо кода, я предполагаю, что вы не отправляете имя файла в качестве заголовка HTTP:
header("Content-Disposition: attachment; filename=" . $filename);
Вы также должны отправлять правильный тип MIME:
header("Content-type: audio/mpeg3");
РЕДАКТИРОВАТЬ: Неважно, думал, что не смогу загрузить файл по ссылке OP и теперь вижу, что ошибался. Скрипт явно использует эти методы, просто не уверен, что делает это правильно.
Комментарии:
1. Вы уверены, что имя файла правильно указано в приведенном выше заголовке? Это привело бы к тому, что имена файлов были бы без расширения.
2. о боже, это решило проблему. Firefox не сделает этого, если я переименую его без расширения. теперь это исправлено, спасибо..