最近几个月我在我的PHP应用程序中一直使用Uploadify,我一直在试图追踪一个难以捉摸的bug。当发生致命错误时,我会收到电子邮件,并为我提供了大量细节。我收到了几十个。然而,我没有能够自己重现这个问题。一些用户(如我)没有遇到任何问题,而其他用户则可以。使用Uploadify时,为什么某些POST数据会丢失?
在我详细说明问题之前,请看下面的流程。
- 用户访问我正在使用的CMS中的页面编辑屏幕。
- 页面的记录ID作为隐藏值放入表单中。
- 用户单击Uploadify浏览按钮并选择一个文件(只允许单个文件选择)。
- 用户点击我的表单提交按钮。
- jQuery拦截表单提交动作,触发Uploadify开始上传,并为提交动作返回false(手动取消表单提交事件以便Uploadify可以接管)。
- Uploadify上传到自定义流程脚本。
- Uploadify完成上传并触发Javascript完成回调。
- Javascript回调调用$('#myForm')。submit()提交表单。
现在,这是应该发生的。我收到了100%的上传冻结报告以及显示“I/O错误”的其他报告。
发生了什么事情,表单正在提交完成回调,但表单中存在的一些帖子参数根本不在帖子数据中。我之前说过的页面的id是作为隐藏字段添加到表单中的,在发布数据($ _POST)中根本不存在 - $ _POST数组中没有用于'id'的项目。奇怪的是,发布数据DOES包含一些字段的值。例如,我有一个名为“name”的文本输入用于记录名称,并且它显示在发布数据中。
以下是我收集:
- 这已经发生在Mac OSX 10.5和10.6,Windows XP和Windows 7的,我可以张贴详细的用户代理字符串是否有帮助。
- 用户必须使用Flash 10.0.12或更高版本。我们已经完成了,所以如果他们有< 10.0.12,表单会恢复为使用正常的“文件”字段。
有没有人有任何想法可能是什么原因?
+1因为我在Uploadify中遇到了同样的问题。客户报告错误,特别是图像上传返回I/O错误或冻结。无法在开发过程中重现错误 - 绝对不能与文件大小/连接相关。 – Jeriko 2010-04-26 12:48:13