使用HTML5文件上传API恢复上传 -

时间:2011-07-27 17:02:12

标签: javascript html5 file-upload fileapi

我想用Html5实现可恢复的上传,一切似乎都有效,除了确定要上传的文件是已经部分上传的文件。理想情况下,我会对生成唯一ID的文件进行客户端散列 - 但是我找不到它的任何工作实现,对于大文件来说似乎太慢了(就像我正在处理的那样)。

接下来,我考虑使用文件的路径作为唯一标识符,但我没有看到任何方法从API获取它。文件名,即使考虑每个用户的文件名也不能是唯一的,因为用户往往具有文件的通用名称。任何人都可以为此考虑解决方案?

2 个答案:

答案 0 :(得分:1)

我猜你最好选择的是一些简单的哈希(MD5在大文件上运行得太慢而非常有用)。

替代方法:按文件名命名上传(当上传多个具有相同名称的文件时,以及某种运行编号,例如file-1,file-2,file-3),并检查随机字节已经上传的文件和本地文件。例如:

  1. 查找具有相同文件名的所有文件(不包括正在运行的数字编号)
  2. 将服务器每10 MB的10个字节与本地文件进行比较,如果这些字节匹配,您可能会对此作为正确的文件充满信心。
  3. 当然这可能导致错误的文件,但散列也是如此。

答案 1 :(得分:0)

正如Mozilla Hacks的How to resume a paused or broken file upload所述,也许您可​​以使用IndexedDB将文件存储在浏览器中,这样您就可以继续上传而无需用户重新选择文件。

有关如何使用IndexedDB存储文件的教程,请参阅Storing images and files in IndexedDB