Флэш и Сессии - PullRequest
       2

Флэш и Сессии

0 голосов
/ 25 августа 2010

Прежде всего, я использую KohanaPHP Framework.

Я успешно реализовал SWFUpload, работая довольно хорошо.У меня только одна проблема.

Основная проблема в том, что мне нужно разрешить пользователям загружать вложения перед отправкой формы.Поэтому я решил использовать Session var для хранения массива вложений.К сожалению, это работает само по себе, если я использую загрузку HTML (на основе iframe), но не когда я использую SWFUpload.

Я пытался Google для этого, но без какого-либо рабочего решения.Есть идеи?

Обновление и решение
По сути, я не знал, что есть проблема с Flash и сессиями.Предоставление одного и того же идентификатора сеанса не помогло мне, потому что я был разблокирован.В любом случае, я нашел решение для людей с такой же проблемой.

Я создал уникальный идентификатор предмета.Я загружаю файлы во временный каталог, затем ... Я сканирую этот каталог и добавляю загруженные имена файлов в сессию.

Том

1 Ответ

2 голосов
/ 25 августа 2010

Вам нужно передать идентификатор сеанса в SWFUpload вручную. Вкратце, вы делаете это в своем шаблоне:

<script type="text/javascript">
var PHPSESSID = <?php echo json_encode(session_id()); ?>;
</script>

Затем вы делаете это с помощью кода SWFUpload:

var settings = {
   post_params: {"PHPSESSID" : PHPSESSID},
   /* the rest of the settings */
};

И, наконец, в коде вашего приложения, за до , который вы вызываете session_start, вам нужно сделать это (обычно только в вашем index.php или в любом другом используемом вами загрузчике):

// Restore session that came from SWFUpload
if(isset($_REQUEST['PHPSESSID']))
    session_id($_REQUEST['PHPSESSID']);

После этого session_start () будет использовать правильный сеанс даже для запросов SWFUpload.

...