在不稳定的互联网连接解决方案上上传文件


File Upload on unstable internet connection solution

所以我有一个文件传输网站,它使用PHP和HTML5开发。这个网站应该处理巨大的文件传输(100MB-4GB的文件大小)。HTML5主要是将文件拆分为更小的大小。它有利于稳定连接。

然而,有几种情况下,由于互联网连接,文件上传刚刚被切断,突然中断了一秒钟。

我的主要问题是,php或html5/javascript中是否存在。。来处理这类问题。例如:也许如果连接只下降了几秒钟,脚本仍然会继续,当连接再次打开时,它会继续上传文件?

或者,如果这样的事情是不可能的,有没有办法检测到互联网被丢弃,并显示警报("互联网被丢弃");像那样的东西?

感谢

我最近遇到了一个问题,涉及FTP上的大型二进制信号文件被丢弃损坏。随后,我们与FTP解决方案一起调查了使用基于网络的上传的选项,类似于您想要的处理方式。最健壮的解决方案仍然是使用rsync实现和连续校验和。

也就是说,HTML5 API似乎直接缺少的选项是能够在组块本身中发送组块的哈希或校验和,从而透明地完成数据组块已被完整接收的验证。

您基本上应该能够做到这一点,方法是对切片数据进行一些处理,并在发送之前将其与blob相结合。

            while( start < SIZE ) {
                var chunk = blob.slice(start, end);
                //var chunkHash = chunk.ComputeHash(); // e.g. CRC32 or Adler
                //chunk = chunkHash + chunk
                uploadFile(chunk);
                start = end;
                end = start + BYTES_PER_CHUNK;
            }

在另一端,您提取前n个字节并计算其余字节的哈希,然后将前n个比特与您的数据进行比较。

一些文章的灵感:使用html5分块上传文件是处理文件上传的好方法如何将文件块(html5分块的结果)快速高效地合并到一个文件中

最后,可能值得调查预先存在的库,并进行一些"退出"测试,以确定性能最佳的库。http://www.plupload.com/似乎有一些追随者(没有关联,未经测试)。