我们提供将图像提交到用户图库的功能。
虽然我们采用的常规方法效果很好,但有些人会上传多个文件,这可能需要很长时间,并且在选择过程中很烦人(一次一个)。
我开始使用 Gears 为那些拥有它的人编写替代方法。主要目标是替换文件选择,并为上传提供进度指示器(这有助于减轻上传多个大文件时的挫败感)。
我已经完成了这一切。
我在这里引用了 Movie Uploader 代码 ( http://uploadmovietool.appspot.com/ ),它演示了使用 chunk 方法上传文件。我让它正确上传,服务器正在接受这些块,但是我在尝试使用 PHP 处理传入数据时遇到了问题。
每个块都是对脚本的单独请求,并且没有数据在 PHP 的正常传入数据 vars _POST
、_GET
、_FILES
等中注册。我终于能够从吸吮中获取数据,$GLOBALS['HTTP_RAW_POST_DATA']
但是即使将数据附加到同一个文件中,图像永远不会完整。它会显示部分,但总是有问题。
..话虽如此..如果有更简单的方法可以将文件发布到脚本,同时仍然可以访问进度更新,我很想听听。
当我开始这个项目时,我认为 Gears 会为我提供一种方法来像正常一样使用文件进行多部分发布,并且只需在间隔内给我一个带有进度信息的事件触发。如果这是可能的(我显然错过了),请告诉我。
需要说明的是:我们知道HTML5 支持进度机制,并准备在它可行时尽快实现。:)
供进一步参考:
我与帖子一起发送的标题(根据谷歌电影上传器示例)是:
Request.setRequestHeader( 'Content-Disposition', 'attachment; filename="' + self._fileName + '"' );
Request.setRequestHeader( 'Content-Type', 'application/octet-stream' );
Request.setRequestHeader( 'Content-Range', 'bytes ' + byteRange );
感谢任何能提供帮助的人。