重新加入分块的HTML 5上传

时间:2012-10-12 10:43:39

标签: php fileapi chunking

我们已经从头开始使用文件api构建了一个HTML5上传器,没有外部库,并且在我们尝试上传文件之前它工作正常> 150MB。此时我们意识到我们需要将文件上传为块。

事情的Javascript方面正在被分割文件和上传的其他人排序。我正在研究PHP方面的事情,需要知道我需要了解的是如何重新加入这些块。

我是否需要修改每个块的标题?

在等待下一个时,我应该如何排队?

我们这么做了吗?

1 个答案:

答案 0 :(得分:2)

在我看来,你需要和gui一起讨论javascript方面,或者至少从他那里得到完成的脚本并看看代码,很可能这个块号将被发送到一个标题中请求。

由于您将在不同的PHP脚本中接收块,我建议您将它们存储在数据库或文件系统中,因为您需要添加块号,所以如果您真的想要的话,它会对文件系统有点困难去文件系统路径我建议你将它们存储在一个文件夹中,该文件夹的名称和文件名为0 ... chunk_count-1作为该文件夹中的文件。

您还应该通过标题收到块的总数,并在上传后比较您拥有的块数。当你拥有所有块时,只需按照块ID的顺序组装它们。如果您使用文件系统,所有文件实际上都已完全写入(通常如果总大小与原始大小匹配),则应该小心。数据库使这变得更加简单,因为当你拥有所有数据时可以在其中插入一行。

文件系统确保完全写入所有文件的方法是将它们写入不同的文件夹,并在完成写入后将它们移动到目标文件夹。两个文件夹应位于同一文件系统上,以便移动不会生成副本+删除。