Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Веселая задачка с заголовками.
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Веселая задачка с заголовками.

Страниц (1): [1]
 

1. Beholder - 08 Мая, 2009 - 06:21:39 - перейти к сообщению
У меня такая проблемка написал файловый хостинг, обнаружил что многие мобильные телефоны не понимают часть заголовков.

Часть кода отвечающая за выдачу файла.
PHP:
скопировать код в буфер обмена
  1.  
  2. header('Content-type: application/octetstream');
  3. header('Content-Length: ' . filesize($f1le));
  4. header('Content-Disposition: attachment; filename="'.$_FILE['filename'].'"');
  5. readfile($f1le);
  6.  

в итоге сохраняет файл не понимая его MIME и просто с иминет getfile.php

сам скрипт http://files[dot]wapwm[dot]net/16/

Помогите с реализацие как лучше?


У меня в мыслях через mod_rewrite
2. valenok - 08 Мая, 2009 - 10:24:46 - перейти к сообщению
Цитата:
$file = ("mashka.rar");
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);
readfile($file);
3. Beholder - 08 Мая, 2009 - 19:03:47 - перейти к сообщению
Ой Улыбка ошибся дело не в этом мобильные телефоны не воспринимают! думаю сделать так через mod rewrite и заголовки динамикой. Но надеюсь есть менее извращеное решение.
4. valenok - 08 Мая, 2009 - 19:15:42 - перейти к сообщению
я думаю в сами телефоны встроено какое-то ограничение на то, что делать с какими файлами. jar сохранять, jpg сохранять, а xyz не сохранять.
5. Beholder - 08 Мая, 2009 - 19:26:43 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. header('Content-Disposition: attachment; filename="'.$_FILE['filename'].'"');
они эту строку не понимают Недовольство, огорчение такшт сохраняет по имени скрипта... и получуется на телефоне файл getfile.php который на многих телефонах не то что не отркыть расширение не поменять
6. Champion - 08 Мая, 2009 - 19:34:28 - перейти к сообщению
Beholder пишет:
filename="'.$_FILE['filename'].'"');
Я тоже эту строку не понимаю. Что ты хотел, чтобы здесь было? Ты $_FILE['filename'] выводил на экран? Она точно определена?
7. Beholder - 08 Мая, 2009 - 19:40:50 - перейти к сообщению
Она выдает имя файла с которым он будет сохранен
8. Beholder - 09 Мая, 2009 - 19:03:28 - перейти к сообщению
Нет никаких предложений?
9. valenok - 10 Мая, 2009 - 08:21:51 - перейти к сообщению
Есть предложение.
Посмотреть что же находится в этой переменной в качестве названия файла с которым оно будет сохранено.
10. Beholder - 10 Мая, 2009 - 19:37:33 - перейти к сообщению
Там имя файла например image.png
11. Roler - 10 Мая, 2009 - 21:20:51 - перейти к сообщению
Beholder
Не например, а оно там реально есть? Выведи и посмотри.

Просто, название $_FILE больно похоже на стандартный массив $_FILES, разница в одну букву.
12. valenok - 11 Мая, 2009 - 06:53:06 - перейти к сообщению
Да вот браузер то сохраняет картинки не с getimage.php , а с другими названиями.
Все таки что-то телефонное. А так со всех телефонов или только твоего ?
13. Beholder - 11 Мая, 2009 - 08:07:32 - перейти к сообщению
SE K320i SE K700i SE K790i Nokia 6021
(Добавление)
$_FILE=$sql->assoc($query);
assоc(); в классе это функция записи в ассоциативный массив.
Такшт она там есть!
14. EuGen - 11 Мая, 2009 - 22:01:06 - перейти к сообщению
Горе-телефоны..
-Отсутствие всяких стандартов (хоть и кричат на всех углах, что они - "самые правильные")
-Глючное понимание заголовков редиректа (когда Марс противостоит Венере - идет перенаправление, иначе же - нет)
-По прихоти большого пальца левой ноги разработчика ОС, и, собственно, браузера на телефоне, те или иные кодировки могут поддерживаться или нет/ те или иные заголовки проглатываться или даже выводиться в тело документа.


Увы и ах, это мир мобильных технологий. Кто в лес кто по дрова, а кто и с авоськой (или нихренаськой). Не получится у Вас унифицировать на все телефоны. Единственный выход - шаманить под конкретный телефон и, определяя его "чудо-браузер" по передаваемым им заголовкам (это почти все из них на удивление делают), отвечать по заранее вбитому шаблону.
15. Beholder - 12 Мая, 2009 - 09:28:56 - перейти к сообщению
Думаю обмануть url' ом mod_rewrite типо : http://site[dot]ru/getfile/image[dot]png а заголовки при помощи регулярки по расширению выбором подставлять. Буду пробовать потом отпишусь если получится может кому пригодится.

 

Powered by ExBB FM 1.0 RC1