Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何实现大文件断点续传【热度: 897】 #535

Open
yanlele opened this issue Aug 25, 2023 · 0 comments
Open

如何实现大文件断点续传【热度: 897】 #535

yanlele opened this issue Aug 25, 2023 · 0 comments
Labels
网易 公司标签 网络 web 网络相关
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented Aug 25, 2023

关键词:文件上传断点续传

前端实现断点续传一般涉及到以下几个步骤:

  1. 分片上传:将大文件分割成多个小的文件块。可以使用 JavaScript 的 File 对象的 slice 方法来实现分片。

  2. 上传文件块:使用 XMLHttpRequest 或 Fetch API 发送每个文件块到服务器。可以将每个文件块的索引、总文件大小等信息一同发送到服务器。

  3. 保存上传进度:在每个文件块上传成功后,可以将已上传的块数、已上传的字节数等信息保存到本地,以便在继续上传时恢复进度。

  4. 续传:在继续上传时,先从本地恢复已上传的进度信息。然后根据已上传的字节数,计算出下一个文件块的起始位置,然后继续上传剩余的文件块。

  5. 合并文件块:在所有文件块都上传完成后,服务器可以将这些文件块合并为完整的文件。可以通过将所有文件块的内容拼接在一起或使用服务器端的工具进行合并。

需要注意的是,断点续传的实现还需要服务器端的支持。服务器端需要接收和处理分片上传的请求,并保存和管理已上传的文件块,以便在续传时恢复文件的完整性。因此,前端实现断点续传需要和后端进行协作。

@yanlele yanlele added 网易 公司标签 网络 web 网络相关 labels Aug 25, 2023
@yanlele yanlele added this to the milestone Aug 25, 2023
@yanlele yanlele changed the title 如何实现大文件断点续传【热度: 1,997】 如何实现大文件断点续传【热度: 897】 Aug 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
网易 公司标签 网络 web 网络相关
Projects
None yet
Development

No branches or pull requests

1 participant