在过去的几个月中,我一直在PHP应用程序中使用Uploadify,并且一直在努力寻找难以捉摸的错误。发生致命错误时,我会收到电子邮件,并且它们为我提供了大量详细信息。我已经收到了很多。但是,我本人无法重现该问题。有些用户(例如我自己)没有问题,而其他用户则有问题。
在给出问题细节之前,这里是流程。
现在这应该发生。我已经收到有关上传卡住为100%的报告,还有其他报告显示“I/O错误”的报告。
发生的情况是,表单正在使用完成回调进行提交,但是表单中存在的某些post参数根本不在发布数据中。页面的id(我之前说过是作为隐藏字段添加到表单中的)在发布数据($ _POST)中根本不存在-$ _POST数组中没有用于'id'的项。奇怪的是,发布数据确实包含某些字段的值。例如,我有一个文本类型的输入,称为“名称”,它是记录名称,它确实显示在发布数据中。
这是我收集的内容:
有人根本不知道这可能是什么原因吗?
最佳答案
IOError: Client read error (Timeout?)
尽管我的服务器端是python/django,但我遇到了很多相同的错误。我以为这是客户端超时,但是现在回头看一下您的日志,似乎在我更改身份验证例程中的某些内容时,这种停止是巧合的。服务器是否有可能正在接收文件,但随后拒绝将其写入存储?
另外,您知道几个Flash客户端不发送cookie吗?您必须通过将 session key 注入(inject)uploadify的'scriptData'变量来解决此问题。
X - - - - - - - - - - - - - - - -
编辑。此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')
关于php - 为什么在使用Uploadify时会丢失一些POST数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2671400/