![]() |
Решение проблемы flash - аплоадеров
Сразу скажу, что я не гуру Action Script программирования, и знаю что вопрос не прост поэтому задаю в этой ветке.
Недавно для проекта нашел отличный open-source Flash uploader (SWFuploader http://swfupload.mammon.se/ ). Установил на тестовую страничку, попробовал - все работает, все ОК. Когда начал прикручивать в свой проект, появилось куча проблем. Зона аплоадера - админка, необходима авторизация для входа. И тут касяк - Flash Player не передает ID сессии или вообще какие-либо cookie из браузера серверу. Т.е. скрипт который принимает файлы отвергает сессию плеера и естественно не сохраняет загруженые файлы. Есть решения по этому поводу - передать например ID сессии через GET, например upload.php?PHPSESSIONID=блаблабла. Описание - здесь: http://groups.google.com/group/cake-...24743d44746f42 . Мало того, я пользуюсь фреймворком cakephp ( http://cakephp.org/ ), в котором помимо этого производиться проверка строки User-Agent, передаваемая браузером, которая, естественно, отличается у флэш-плеера. Отсюда у меня вопрос, возможно ли решить следующие задачи: 1) установить во Flash-плеере cookie те же, что и в браузере; 2) установить такую же строку User-Agent у плеера, как и у браузера. Заранее спасибо за ответы. |
У флешки, расположенной на странице, User-Agent совпадает с браузерным.
|
Да, я считаю что так и должно быть, может так оно и есть в случае с IE, но в данном случае это не так. Вот как представился браузер:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.5) Gecko/20061201 Firefox/2.0.0.5 (Ubuntu-feisty) а так представился плеер: Shockwave Flash Мой плеер - 9.0.31.0 Есть идеи по поводу кукисов? |
Так, ещё раз: флешка, расположенная на странице, в браузере, имеет тот же User-Agent, что и браузер. Во всяком случае, под Windows и Mac OS X точно. Под Linux не знаю.
А standalone-плеер имеет свой User-Agent и Cookie не поддерживает. |
Я постучался разными браузерами с разных операционок и вот результаты. Сначала буду писать как представился браузер, через строчку - плеер.
FF под линухом: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty) Shockwave Flash FF под виндой Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6 Shockwave Flash IE6 под линухом (проект IE4L): Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Shockwave Flash IE7 под виндой Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MyIE2; MRA 4.9 (build 01863); .NET CLR 1.1.4322) Shockwave Flash IE6 под виндой Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; MRA 4.9 (build 01863)) Shockwave Flash Что вы имели ввиду под "standalone-плеер"? Я имею ввиду только тот плеер который отображается на странице в браузере. Разве могут здесь быть варианты? |
Гм, очень странно, но у меня везде User-Agent совпадает с браузерным.
Например, для FF: Код:
GET /month.php HTTP/1.1Код:
[10/Aug/2007:11:49:39 +0400] "GET /month.php HTTP/1.1" 200 300 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" |
Хм... Интересная проблема. У меня user-agent тоже везде совпадает с браузерным.
Может быть дело в том, как флешка вставлена в страницу? Врядли конечно, но ничего другого в голову не идет. |
У меня в логе сервера всего 4 Shockwave Flash встречается и то, там в Referer написан линк на локальный файл, т.е. это standalone-плеер. Лог — 12 метров.
|
Я честно говоря не разбирался, как она вставлена. Вообще очень любопытное использование. Посмотрите демо на главной : http://swfupload.mammon.se/ . Все делает javascript, а флэшка вообще скрыта.
_etc, month.php запрашивается флэшкой? В моем случае идет POST. Может тоже есть разница? Я так понимаю, что кукисов во флэшке нет таких же как у браузеров? Если есть, то как их устанавливать? |
wargoth, вот с POST:
Код:
POST /php/book/index.php HTTP/1.1Код:
[10/Aug/2007:12:22:13 +0400] "POST /php/book/index.php HTTP/1.1" 200 1956 "http://etcs.ru/swf/guestbook.swf" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" |
| Часовой пояс GMT +4, время: 08:39. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.