Почему некоторые данные POST пропали бы при использовании Uploadify?

Я использовал Uploadify в своем приложении PHP в течение прошлых месяцев пары, и я пытался разыскать неуловимую ошибку. Я получаю электронные письма, когда фатальные ошибки происходят, и они предоставляют мне хорошую сумму деталей. Я принял десятки из них. Я, однако, не смог воспроизвести проблему сам. Некоторые пользователи (как я) не испытывают проблемы, в то время как другие делают.

Прежде чем я сообщу подробности проблемы, вот поток.

  • Пользователь посещает экран редактирования для страницы в CMS, который я использую.
  • Рекордный идентификатор для страницы помещается в форму как скрытое значение.
  • Пользователь нажимает кнопку обзора Uploadify и выбирает файл (только единственный выбор файла позволяется).
  • Пользователь нажимает Кнопку отправки для моей формы.
  • jQuery прерывает форму, отправляют действие, триггерный Uploadify, чтобы начать загружать, и возвращает false для отправлять действия (вручную отменяющий форму, отправляют событие так, чтобы Uploadify мог вступить во владение).
  • Uploadify загружает на пользовательский сценарий процесса.
  • Uploadify заканчивает загружать и инициировал обратный вызов завершения JavaScript.
  • $ обратных вызовов JavaScript ('#myForm') .submit () для представления формы.

Теперь это - то, что ДОЛЖНО произойти. Я получил сообщения о загрузке, замораживающейся в 100% и также других, где "Ошибка ввода-вывода" отображена.

То, что происходит, форма отправляет с обратным вызовом завершения, но некоторые параметры сообщения, существующие в форме, находятся просто не в данных сообщения. Идентификатор для страницы, которую ранее я сказал, добавляется к форме как скрытое поле, находится просто не там в данных сообщения ($ _POST) - нет никакого объекта для 'идентификатора' в $ _POST массива. Странная вещь, данные сообщения ДЕЙСТВИТЕЛЬНО содержат значения для некоторых полей. Например, у меня есть вход текста типа, названного "именем", которое является для рекордного имени, и это действительно обнаруживается в данных сообщения.

Вот то, что я собрал:

  • Это происходило на Mac OSX 10.5 и 10.6, Windows XP и Windows 7. Я могу отправить точные строки агента пользователя, если это помогает.
  • Пользователи должны использовать Flash 10.0.12 или позже. Мы сделали его так, форма возвращается к использованию нормального поля "файла", если они имеют <10.0.12.

У кого-либо есть КАКИЕ-ЛИБО идеи вообще, какова причина этого могла быть?

5
задан Chad Johnson 19 April 2010 в 22:40
поделиться

3 ответа

IOError: Client read error (Timeout?)

У меня часто возникала та же ошибка, хотя моя серверная часть - python / django. Я предположил, что время ожидания клиента истекло, но оглядываясь назад через журналы для вас теперь, похоже, это прекращение происходит случайно, когда я что-то изменил в процедурах аутентификации. Возможно ли, что сервер получает файл, но затем отказывается записать его в хранилище?

Кроме того, вы знаете, что несколько клиентов флэш-памяти делают не отправляют файлы cookie? Вы должны обойти это, вставив ключи сеанса в переменную 'scriptData' uploadify.

x ------------------------ --------

Edit. Этот код python / django запускает процедуру, которой uploadify отправляет себя:

# Adobe Flash doesn't always send the cookies, esp. from Apple Mac's.
# So we've told flash to send the session keys via POST. So recreate the
# session now. Also facilitates testing via curl.
cookie_name = settings.SESSION_COOKIE_NAME
if request.member.is_anonymous() and request.POST.has_key(cookie_name):

        # Convert posted session keys into a session and fetch session
        request.COOKIES[cookie_name] = request.POST[cookie_name]
        SessionMiddleware().process_request(request)

# boot anyone who is still anonymous
if request.member.is_anonymous():
    response['message'] = "Your session is invalid. Please login."
    return HttpResponse(simplejson.dumps(response), mimetype='application/json')
3
ответ дан 15 December 2019 в 06:20
поделиться

Uploadify может изменить форму. Взгляните на дерево html / DOM формы в то время, когда загрузка завершилась и вызывает ваш обратный вызов.

0
ответ дан 15 December 2019 в 06:20
поделиться

Пробовали ли вы использовать Live HTTP Headers в Firefox, чтобы узнать, не происходит ли какое-то перезапись, из-за которой данные публикации быть потерянным?

0
ответ дан 15 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: