news 2026/4/15 14:55:40

JavaScript--大文件上传的伪代码实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript--大文件上传的伪代码实现

前言

猛的,我想起上一次找工作时被问到的大文件上传,故现在借此实现下,也算是为面视做了准备了吧

分析

使用File对象原型链上的slice函数对文件进行分块,同时为每一块打上唯一性标识和序号,最后对每一个分块作单独的ajax请求,当所有子块均上传完毕后,再发起合并请求,让后台对分块进行合并即可

实现

我本来是打算用vue3写的,奈何网太差,项目半天初始化不好,故直接使用jq,页面效果如下

当获取到文件后,对文件进行拆分,比如以2M作为拆分标准,拆成file.size/2个请求,如果同一个文件被多次上传,则需要能有一个标识标记出是同一文件从而忽略(这一般都是后台的事儿了),这里可用借助SparkMD5来生成唯一hash文件标识

框出的位置则是对文件分成不同的chunk,并按chunk发送给后台

分块完成后,便可以生成唯一hash值并发送分块请求

对于进度条的实现则可以借助axios的onUploadProgress函数,我这里胡乱模拟了一个

最后就是使用Promise.allSettled来获取每一个分块请求的结果,如果存在失败的,则重发即可

写在最后

一开始是想做一个完整的,但是时间未必都是海绵里的水,挤一挤未必都有,不过也有一些实现的思路:

使用koaBody中间件处理post请求,在其onFileBegin函数中接收前端传递的chunk信息并使用fs的文件读写能力保存到本地

使用读写流读取本地的分块文件,并进行合并,最后删除对应的块文件即可

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。


因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

四、AI大模型商业化落地方案

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:42:12

DBeaver数据库对象搜索功能失效终极解决方案

你是否遇到过这样的场景:在DBeaver中急需查找某个数据库表,输入关键词后却一无所获?面对空白的搜索结果列表,那种"明明存在却搜不到"的挫败感,相信不少数据库开发者都深有体会。今天,我们就来彻底…

作者头像 李华
网站建设 2026/4/12 21:38:31

浅谈 Tarjan 算法 _

最近学了些新算法,过来做下笔记,以免以后忘了。前置知识Tarjan 算法的时间复杂度为 �(��)O(nm)。在除了求最近公共祖先的 Tarjan 算法里,都会用到两个数组和一个概念,在这里写清楚一点&#xff…

作者头像 李华
网站建设 2026/4/14 18:46:47

终极指南:3步快速将普通音箱升级为AI助手

还在为家中智能音箱的"智障"表现而苦恼吗?想让你的普通音箱瞬间拥有智能对话能力?本教程将为你揭示一个简单易行的解决方案,无需任何编程基础,只需3个步骤就能让音箱秒变贴心AI助手。 【免费下载链接】mi-gpt &#x1f…

作者头像 李华
网站建设 2026/4/12 20:22:24

FunASR语音识别终极指南:从零到部署全流程

还在为复杂的语音识别系统搭建而烦恼吗?FunASR作为业界领先的开源端到端语音识别工具包,通过完整的技术栈和丰富的预训练模型,让语音识别应用开发变得前所未有的简单。本文将带你全面掌握FunASR的核心功能、快速上手方法和实战部署技巧。 【免…

作者头像 李华
网站建设 2026/4/12 13:56:37

计算机专业的同学想要进大厂,这几个竞赛在大学一定不要错过!

前言 计算机专业的同学想要进大厂,这几个竞赛一定不要错过,不仅能提高技术,还可以获得奖金,这里给大家整理了六个比赛,含金量和认可度都非常高: 一、ACM国际大学生程序设计竞赛 国际大学生程序设计竞赛&…

作者头像 李华
网站建设 2026/4/12 20:19:01

Node.js推送通知终极方案:node-gcm库完整指南

Node.js推送通知终极方案:node-gcm库完整指南 【免费下载链接】node-gcm A NodeJS wrapper library port to send data to Android devices via Google Cloud Messaging 项目地址: https://gitcode.com/gh_mirrors/no/node-gcm 在当今移动优先的时代&#xf…

作者头像 李华