在不稳定的互联网连接解决方案上上传文件
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/似乎有一些追随者(没有关联,未经测试)。
相关文章:
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- jQuery/AAJAX解决方案,用于检查网络共享中是否存在文件夹
- 在两个解决方案中引用通用的Javascript文件
- 文件.位置 奇怪的行为?/ 替代 jsTree 链接解决方案
- 允许在 HTML5 应用程序中访问内部网/本地文件的解决方案
- 需要一个更好的解决方案来从JavaScript文件附加HTML
- 在不稳定的互联网连接解决方案上上传文件
- 可以在解决方案中重新处理javascript intellisense引用另一个项目中的js文件
- 安卓4.4.2 html文件上传是否正常?需要解决方案,而不是变通方法
- 是否有任何解决方案来引用javascript文件不在当前的解决方案,在VS2010智能感知
- 如何在ES6中分离Jsx内部渲染函数到一个单独的文件?或任何其他解决方案,以分离逻辑和表示
- 使用SVG文件的跨浏览器解决方案
- Javascript文件结构-任何好的解决方案
- 联系表单与文件上传解决方案
- 文件输入的onchange的解决方案是什么?
- NodeJS -使用Core NodeJS和原始Node解决方案上传带有进度条的文件
- SonarQube Runner跳过Asp中的JavaScript文件.Net MVC解决方案
- Javascript读取文件的解决方案(查看脚本,但不加载它)
- PHP AJAX文件上传器解决方案
- 使用ENVDTE时的Java脚本-将新项目添加到现有解决方案中,并将其定位在特定的子文件夹中