gpt4 book ai didi

php - 网络连接不稳定的文件上传解决方案

转载 作者:行者123 更新时间:2023-11-30 17:56:28 26 4
gpt4 key购买 nike

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

然而,在某些情况下,由于互联网连接突然断断续续,文件上传刚刚中断。

我的主要问题是,php 或 html5/javascript 中是否有任何方式来处理此类问题。例如:也许如果连接断开仅几秒钟,脚本仍会继续运行,当连接再次打开时,它会继续文件上传?

或者如果这样的事情是不可能的,有没有办法检测到互联网掉线,并显示警报(“互联网掉线”);类似的东西?

谢谢

最佳答案

我最近遇到一个问题,涉及 FTP 上的大型二进制信号文件被丢失损坏。随后,我们与 FTP 解决方案一起调查了使用基于 Web 的上传的选项,类似于您正在寻找的那种处理方式。最可靠的解决方案仍然是使用 rsync 实现和连续校验和。

也就是说,HTML5 API 似乎直接缺少的选项是能够在 block 本身中发送 block 的散列或校验和,以便透明地完成对数据 blob 是否完整接收的验证.

您基本上可以通过对切片数据进行一些处理并在发送之前将其与 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 个字节与您的数据进行比较。

一些灵感文章: uploading a file in chunks using html5是我认为处理文件上传的好地方 how to merge chunks of file (result of html5 chunking) into one file fast and efficient

最后,可能值得研究预先存在的库并进行一些“退出”测试以确定性能最佳的库。 http://www.plupload.com/似乎有一些追随者(不隶属于此目的且未经测试)。

关于php - 网络连接不稳定的文件上传解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17957916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com