当前位置: 首页 > article >正文

汽车制造经验:JS如何基于百度WebUploader插件实现设计图纸的加密分片断传?

叼着冰棍敲键盘显示器蓝光映着稀疏的头发各位爷瞧好了啊咱这老码农被甲方爸爸按在地上摩擦了三个月终于用原生JS搓出个能兼容IE9的文件夹上传怪兽。先说好哈100块预算连我键盘缝里的烟灰都买不起但看在各位兄弟要组团接单的份上今天就豁出去了 文件夹上传核心代码兼容IE9的SM4加密版// 文件夹选择器IE9兼容方案functioncreateFolderInput(){constinputdocument.createElement(input);input.typefile;input.webkitdirectorytrue;// Chrome/Edge/Operainput.directorytrue;// Firefoxinput.multipletrue;// IE9特殊处理需要用户手动选择文件夹内所有文件if(window.navigator.userAgent.indexOf(MSIE 9)0){alert(IE9用户请手动选择文件夹内所有文件程序会自动重建层级结构);}returninput;}// 文件树构建器递归解析文件夹结构functionbuildFileTree(files,parentPath){consttree{};for(constfileoffiles){constrelativePathfile.webkitRelativePath||(parentPath?${parentPath}/${file.name}:file.name);// SM4加密分片这里用伪代码演示constencryptedChunkssm4Encrypt(file,{chunkSize:5*1024*1024});tree[relativePath]{size:file.size,chunks:encryptedChunks,lastModified:file.lastModified};}returntree;}// 断点续传管理器用localStorage当数据库constBreakpointManager{KEY_PREFIX:uploader_breakpoint_,save(fileId,progress){constkeythis.KEY_PREFIXfileId;localStorage.setItem(key,JSON.stringify(progress));},get(fileId){constkeythis.KEY_PREFIXfileId;constdatalocalStorage.getItem(key);returndata?JSON.parse(data):null;},clearAll(){// 实际项目需要更精细的清理逻辑Object.keys(localStorage).filter(kk.startsWith(this.KEY_PREFIX)).forEach(klocalStorage.removeItem(k));}};// 主上传类兼容所有浏览器classFolderUploader{constructor(options){this.optionsoptions;this.fileTree{};this.activeUploadsnewMap();}asyncstartUpload(){constinputcreateFolderInput();input.onchangeasync(e){this.fileTreebuildFileTree(e.target.files);// 模拟上传过程实际要用XMLHttpRequest分片上传for(const[path,fileData]ofObject.entries(this.fileTree)){constprogressBreakpointManager.get(path)||{uploaded:0};// 伪代码实际要实现分片上传逻辑while(progress.uploadedfileData.chunks.length){awaitthis.uploadChunk(path,progress.uploaded);progress.uploaded;BreakpointManager.save(path,progress);}}alert(上传完成快去服务器查看你的20G爱情动作片合集吧);};input.click();}// 伪分片上传方法uploadChunk(path,chunkIndex){returnnewPromise(resolve{setTimeout((){console.log(上传中:${path}第${chunkIndex}块);resolve();},300);// 模拟网络延迟});}}// 使用示例在Vue组件中调用document.getElementById(uploadBtn).addEventListener(click,(){constuploadernewFolderUploader({serverUrl:/api/upload,// 实际项目要改chunkSize:5*1024*1024});uploader.startUpload();}); 技术要点说明甲方爸爸最爱听的吹牛素材IE9兼容方案文件夹选择用webkitdirectory手动提示加密算法改用CryptoJS的AESSM4需要polyfillPromise用ES5写法polyfill断点续传黑科技用localStorage存储上传进度IE9支持每个文件独立记录重启电脑也不怕实际项目应该用IndexedDB存储大进度性能优化分片大小动态调整根据网络状况并发上传控制防止浏览器崩溃Web Worker解密避免主线程卡顿 重要声明免被甲方打死上面代码是阉割版实际项目需要完整的SM4/AES加密实现真正的分片上传逻辑完善的错误处理进度显示UI7*24小时支持加群374992201群主会定时发自动回复.txt3年免费维护等我把Vue4/SpringBoot6学完再说100元预算建议甲方爸爸考虑用FTP更划算突然被甲方电话打断“喂什么要加支持WebTorrent下载好好好我这就把群号改成收费入群…” ‍♂️完整实现方案加群领取《前端农民工的自我修养.pdf》内含完整文件夹上传源码Vue3版加密算法polyfill方案跨浏览器兼容性测试报告如何在100元预算内让甲方满意的技巧将组件复制到项目中示例中已经包含此目录引入组件配置接口地址接口地址分别对应文件初始化文件数据上传文件进度文件上传完毕文件删除文件夹初始化文件夹删除文件列表参考http://www.ncmem.com/doc/view.aspx?ide1f49f3e1d4742e19135e00bd41fa3de处理事件启动测试启动成功效果数据库效果预览文件上传文件刷新续传支持离线保存文件进度在关闭浏览器刷新浏览器后进行不丢失仍然能够继续上传文件夹上传支持上传文件夹并保留层级结构同样支持进度信息离线保存刷新页面关闭页面重启系统不丢失上传进度。下载示例点击下载完整示例

相关文章:

汽车制造经验:JS如何基于百度WebUploader插件实现设计图纸的加密分片断传?

(叼着冰棍敲键盘,显示器蓝光映着稀疏的头发) 各位爷瞧好了啊!咱这老码农被甲方爸爸按在地上摩擦了三个月,终于用原生JS搓出个能兼容IE9的文件夹上传怪兽。先说好哈,100块预算连我键盘缝里的烟灰都买不起&a…...

go gorm极简元数据处理

func Test003_GetDbMeta(t *testing.T) {var dbfacade FindBeanDbmetaFacade()ret : dbfacade.GetDbMeta("plat_menu")golog.Info("dbmeta:", ret) }2026-03-15 13:42:01.939 [INFO] dbmeta: {"code": 200,"msg": "成功",&…...

避坑 3:Docker 致命大坑!容器一删,业务数据全没了?3 套解决方案,直接抄,不翻车

文章目录避坑 3:Docker 致命大坑!容器一删,业务数据全没了?3 套解决方案,直接抄,不翻车方案一:根治方案!命名数据卷持久化(生产 / 测试环境通用,官方首选&…...

社会上有以假乱真的假钞,数学中有以假乱真的假R轴迷惑世人几百年

黄小宁R各元x有对应数2x。R轴即x轴沿本身保序不保距地拉伸变换为元为点2x的2x轴不全等于x轴从而更不x轴,然而自有函数和解析几何概念几百年来数学一直误以为x轴2x轴。将两异直线误为同一线自然就会将两异直线段误为同一线段从而使康脱推出错上加错的更重大错误&…...

WordPress网站营销数据跟踪

如今,在数字营销领域,数据分析已成为优化网站的关键。对于WordPress网站而言,跟踪和分析营销数据不仅有助于提升用户体验,还能提高流量和转化率。许多服务器提供商(如 Hostease)支持一键安装WordPress&…...

Ubuntu 22.04 局域网安装GitLab

下面直接给你一份 Ubuntu 22.04 在局域网安装 GitLab 的可执行教程。 场景固定为: 非 Docker 非源码 服务器 IP:192.168.1.42 安装方式:GitLab Linux package(Omnibus) 先按 HTTP 内网访问 部署,最快跑通;GitLab 官方也明确支持把 external_url 直接设成服务器 IP,只是…...

毕设程序java车险理赔管理系统 基于SpringBoot的车辆保险智能定损与理赔平台 汽车保险全流程数字化管理与在线理赔系统

毕设程序java车险理赔管理系统b8xa28me (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着汽车保有量的持续攀升和交通事故频发,车险理赔作为连接车主权益保障与保险…...

毕设程序java车辆保养管理平台 基于SpringBoot的汽车养护服务系统 智慧车辆维保一体化平台

毕设程序java车辆保养管理平台60q1uywv(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着汽车保有量的持续攀升,车辆后市场服务正经历从传统纸质档案向数字化管理的…...

最近在折腾步科触摸屏和台达VFD-M变频器的通讯项目,实测走通了一套控制方案。先给大伙儿分享下关键配置和脚本实现,手头有设备的可以直接抄作业

步科触摸屏通讯台达vfd-m变频器示例 所需硬件:步科t070或其它支持485功能触摸屏(电脑在线模拟需要USB转485转换头),台达VFD-m变频器。 功能实现:正反转,点动停止,频率设定,运行频率,电流&#x…...

卸灰阀、星型卸料阀、旋转卸料阀cad总装配图纸

卸灰阀、星型卸料阀与旋转卸料阀作为气力输送系统中的核心组件,其设计逻辑与功能定位直接决定了物料的输送效率与系统稳定性。卸灰阀通常安装于储料仓底部,通过阀体开合控制物料下落,其核心作用在于防止仓内气体逆流,避免粉尘外泄…...

Redis 集群从裸奔到全副武装:搭建、可视化、监控、告警、看板一条龙

你的 Redis 集群还在"裸奔"吗?跑着跑着挂了不知道,内存爆了没人管,慢查询堆成山还蒙在鼓里。网上教程要么只讲搭建,要么只讲监控,想找一篇从头到尾串起来的——没有。所以我写了这篇,从 搭建集群…...

【IT老齐245 笔记 + 思考】综合对比九种 MySQL 高可用方案

视频来源:B站 IT老齐 本文为视频学习笔记 扩展整理,覆盖 9 种主流 MySQL 高可用方案的原理、优缺点及选型建议。 一、高可用的核心目标 目标说明故障自动切换主库挂了,从库能自动顶上数据不丢失切换过程中保证数据一致性业务少感知切换时间…...

导师又让重写?千笔写作工具,一键生成论文神器

你是否曾为论文选题而发愁?是否在深夜面对空白文档无从下笔?是否反复修改却总对表达不满意?论文写作不仅是学术能力的考验,更是时间和精力的挑战。对于大多数本科生来说,从开题到定稿,每一步都充满焦虑与压…...

计算机毕业设计 java 养殖基地信息管理系统 Java+SpringBoot 养殖基地运营管理平台 Web 版牲畜养殖产销管理系统

计算机毕业设计 java 养殖基地信息管理系统 9cpf69(配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联 xi 可分享养殖业规模化发展,传统养殖基地依靠人工记录牲畜、库存、订单、客户信息&#xf…...

计算机毕业设计 java 养老院管理系统 Java+SpringBoot 智慧养老服务平台 Web 版养老院综合管理系统

计算机毕业设计 java 养老院管理系统 i7g5a9(配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联 xi 可分享人口老龄化进程加快,传统养老院依靠人工管理老人信息、护理、物资、膳食等工作&#xf…...

导师推荐 10个一键生成论文工具:本科生毕业论文+开题报告写作全测评

在当前学术写作日益数字化的背景下,本科生在撰写毕业论文与开题报告时,常常面临选题困难、资料搜集繁琐、格式规范不熟悉等多重挑战。为了帮助更多学生高效完成学术任务,我们基于2026年的最新测评数据,结合实际使用场景与用户反馈…...

赶deadline必备!全场景通用AI论文神器 —— 千笔·专业论文写作工具

你是否曾为论文选题发愁,面对空白文档无从下笔?是否在反复修改中感到力不从心,却始终无法达到理想效果?论文写作不仅是学术能力的考验,更是时间与精力的挑战。而如今,有了千笔AI,这一切都将变得…...

OpenClaw-RL 论文解读:用“下一状态信号“统一所有智能体的强化学习训练

OpenClaw-RL 论文解读:用"下一状态信号"统一所有智能体的强化学习训练论文标题:OpenClaw-RL: Train Any Agent Simply by Talking 论文链接:https://arxiv.org/abs/2603.10165 作者:Yinjie Wang, Xuyang Chen, Xiaolong…...

IndexCache:跨层索引复用,让稀疏注意力推理再快一倍

IndexCache:跨层索引复用,让稀疏注意力推理再快一倍 论文标题:IndexCache: Accelerating Sparse Attention via Cross-Layer Index Reuse 作者:Yushi Bai, Qian Dong, Ting Jiang, Xin Lv, Zhengxiao Du, Aohan Zeng, Jie Tang, J…...

教育行业案例:jQuery如何集成百度WebUploader实现学校官网课件的自动分片续传?

前端大文件上传系统(纯原生JS实现)—— 专治各种不服IE9的倔强开发者 各位前端老炮儿们,今天给大家带来一个能兼容IE9的20G大文件上传系统,保证让你的客户感动到哭(或者吓跑)。毕竟在这个Vue3横行的时代&a…...

跨平台方案:JS如何通过百度WebUploader组件实现多终端大文件的目录结构分片?

前端老哥的“懒人”大文件上传方案(Vue3原生JS) 兄弟们!我是辽宁一名“头发没秃但代码量秃”的前端程序员,最近接了个外包活——给客户做文件管理系统,核心需求就仨字儿:“稳、省、兼容”!客户…...

医疗系统实践:Vue如何通过百度WebUploader组件优化病历图片的多线程分块上传?

客户这边啊,是汽车制造行业里的大哥大,是那种数一数二的企业。他们自己有一整套非常棒的业务系统,这套系统就像他们的得力助手,每天帮他们处理各种事情。但呢,随着行业竞争越来越激烈,技术也日新月异&#…...

从“稳”到“快”:滴滴2025财报背后的全球化布局与AI转型

在2025年第四季度,滴滴出行公布了其年度财报,这份数据不仅展示了其作为出行业务巨头的稳健实力,也揭示了其在国际市场加速布局以及自动驾驶与AI技术深度融合的未来版图。作为一家已经运营十余年的平台企业,滴滴在2025年实现了从“…...

逛超市遇到车神,上海这周变成了“F1痛城”!

这几天的上海,可能是国内第一座真正意义上的“F1痛城”。不是说街头有红绿灯比平时长,而是连去超市买菜、逛逛街,居然都有机会撞上世界级车手,感受一把“赛车手在民间的生活”。从3月10日开始,随着F1赛季正式拉开帷幕&…...

DEFCON CTF Write-up — zig-show

Challenge Overview 题目名称: zig-show 附件: zig-show flag.txt (server only) 服务接口: nc challenge.defcon.org 31338 连接后程序输出: Welcome to Zig Show! Give me a number: 输入数字后: Result: …...

DEFCON CTF Write-up — de-jean-erative

背景 DEF CON CTF 是全球最顶级的黑客竞赛之一,被称为“黑客奥林匹克”。每年来自世界各地的顶级安全研究团队都会参加该比赛。 比赛通常包含多个领域: Binary Exploitation Reverse Engineering Cryptography Web Security Pwn / Kernel AI / LLM explo…...

计算机毕业设计springboot四川特色小吃管理系统 基于SpringBoot的巴蜀风味小吃数字化运营平台 基于SpringBoot的川渝美食文化传承与商业管理系统

计算机毕业设计springboot四川特色小吃管理系统29ji1c34 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 在数字经济蓬勃发展的当下,传统餐饮业正经历着深刻的数字化…...

计算机毕业设计springboot城市的地铁综合服务管理系统 基于SpringBoot的城市地铁一体化服务管理平台 城市轨道交通数字化运营与乘客服务系统

计算机毕业设计springboot城市的地铁综合服务管理系统hsluqa90 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着城市化进程的不断加速,城市人口规模持续膨胀&…...

计算机毕业设计springboot大学生公寓管理系统 基于SpringBoot的高校学生宿舍信息化管理平台 基于SpringBoot的智慧校园住宿服务系统

计算机毕业设计springboot大学生公寓管理系统rm8571vv (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着高校招生规模的不断扩大,学生宿舍管理工作面临着前所未有…...

CLI-Anything 全面解析:一行命令,为任意软件生成 Agent 接口

一句话说清楚CLI-Anything 是一个 AI Agent 驱动的自动化工具。你给它一个软件的源码,它自动生成一套完整的命令行接口,让 Agent 通过 --help 发现功能、通过 --json 获取结构化输出,像人类点击菜单一样操控专业软件——但全程只用命令行。它…...