firefox загружает mp3-файлы без расширения

#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 не сделает этого, если я переименую его без расширения. теперь это исправлено, спасибо..