我们提供向用户图库提交图像的能力。
虽然我们所采用的正常方法工作得很好,但有些人会上传多个文件,这可能需要很长时间,而且在选择过程中很烦人(一次一个)。
我开始用Gears为那些拥有它的人编写一种替代方法。主要目标是替换文件选择,并为上传提供进度指示符(这有助于减轻上传多个大文件时的挫折感)。
这一切我都做好了。
我在这里引用了Movie代码(http://uploadmovietool.appspot.com/),它演示了使用块方法上传文件。我让它正确上传,服务器正在接受这些块,但是我遇到了一个问题,试图用PHP处理传入的数据。
每个块都是对脚本的单独请求,没有一个数据是在PHP的普通传入数据vars、_GET、_FILES等中注册的。然而,我终于能够从$GLOBALS['HTTP_RAW_POST_DATA']上获取数据,即使将数据附加到同一个文件中,图像也永远不会完成。它会显示出一些部分,但总是有些不对劲。
有人说..That ..。如果有一种更简单的方式将文件发布到脚本,同时仍然可以访问进度更新,我很想听听它。
当我开始这个项目时,我假设Gears会为我提供一种方法来处理像normal这样的文件的多部分发布,并简单地给我一个包含进度信息的间隔事件。如果这是可能的(显然我已经错过了),请告诉我。
需要明确的是:我们知道HTML5支持进展机制,并且准备在它可行的情况下立即基于它实现。:)
供进一步参考:
我在文章中发送的标题(如google电影上传器示例所示)如下:
Request.setRequestHeader( 'Content-Disposition', 'attachment; filename="' + self._fileName + '"' );
Request.setRequestHeader( 'Content-Type', 'application/octet-stream' );
Request.setRequestHeader( 'Content-Range', 'bytes ' + byteRange );感谢任何能帮忙的人。
发布于 2010-02-01 00:14:31
从您的描述来看,PHP可能没有正确地写入文件。不知道为什么。
然而,这是一个棘手的问题。例如,Facebook (如您所知,他也使用PHP )决定编写一个NPAPI插件来实现这个特性。
http://www.facebook.com/note.php?note_id=178492968919
此外,您还可以考虑编写浏览器扩展这一较不容易移植的选项。这在Firefox和Chrome中是很容易做到的,并将为这些浏览器的用户提供一个很好的临时选择。
https://stackoverflow.com/questions/2173857
复制相似问题