У меня есть магазин, который позволяет людям скачивать приобретенные ими mp3-файлы.URL, который они вводят для загрузки mp3, имеет вид:
http://domainName/download.php?a=123&b=456
Вот типичный заголовок, который моя php-программа отправляет в браузер (захваченный с помощью Fiddler):
Cache-Control: must-revalidate, post-check=0, pre-check=0
Content-Type: audio/mpeg
Content-Length: 3011430
Content-Disposition: attachment;filename="AIR FOR PIPES.MP3";
На планшете Android (ASUS Transformer) до 4.0 или после 4.0 загруженный файл называется «download.php», а не «AIR FOR PIPES.MP3».Другими словами, браузер игнорирует имя файла вложения.По крайней мере, песня играет хорошо, даже с суффиксом .php!Любопытно, что на телефоне Samsung Charge Android 2.3.6 имя файла «AIR_FOR_PIPES.MP3» (телефон добавил подчеркивание, что нормально).В Windows этот код отлично работает в IE, Firefox, Chrome и Safari.Только планшет дает мне горе от имени файла.
Другие сайты предлагают, чтобы у меня не было пробела после ";"и mp3 должен быть заглавными буквами - и это не решение.Другая информация предполагает, что это известная ошибка в POST, но, как вы можете видеть, я делаю только GET.Я также попытался указать «application / octet-stream», но он не делает различий.
Есть ли какие-то настройки планшета, из-за которых файл изначально назывался «Без названия», но в конечном итоге сохранялся как «download.php»?(Мой планшет зашифрован - не уверен, что это актуально.)
РЕДАКТИРОВАТЬ / ОТВЕТ: (форум не позволяет мне ответить на мой собственный вопрос) Очевидно, планшет не будет допускать пробелы в прикрепленном имени файла.Я удалил их, и имя файла было записано правильно как AIRFORPIPES.MP3.