Я использовал Uploadify в своем приложении PHP в течение прошлых месяцев пары, и я пытался разыскать неуловимую ошибку. Я получаю электронные письма, когда фатальные ошибки происходят, и они предоставляют мне хорошую сумму деталей. Я принял десятки из них. Я, однако, не смог воспроизвести проблему сам. Некоторые пользователи (как я) не испытывают проблемы, в то время как другие делают.
Прежде чем я сообщу подробности проблемы, вот поток.
Теперь это - то, что ДОЛЖНО произойти. Я получил сообщения о загрузке, замораживающейся в 100% и также других, где "Ошибка ввода-вывода" отображена.
То, что происходит, форма отправляет с обратным вызовом завершения, но некоторые параметры сообщения, существующие в форме, находятся просто не в данных сообщения. Идентификатор для страницы, которую ранее я сказал, добавляется к форме как скрытое поле, находится просто не там в данных сообщения ($ _POST) - нет никакого объекта для 'идентификатора' в $ _POST массива. Странная вещь, данные сообщения ДЕЙСТВИТЕЛЬНО содержат значения для некоторых полей. Например, у меня есть вход текста типа, названного "именем", которое является для рекордного имени, и это действительно обнаруживается в данных сообщения.
Вот то, что я собрал:
У кого-либо есть КАКИЕ-ЛИБО идеи вообще, какова причина этого могла быть?
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')
Uploadify может изменить форму. Взгляните на дерево html / DOM формы в то время, когда загрузка завершилась и вызывает ваш обратный вызов.
Пробовали ли вы использовать Live HTTP Headers в Firefox, чтобы узнать, не происходит ли какое-то перезапись, из-за которой данные публикации быть потерянным?