news 2026/5/12 14:37:42

加密存储在JAVA分块上传中的技术探讨

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
加密存储在JAVA分块上传中的技术探讨

《码农的20G文件上传历险记:从IE8到破产边缘》

各位老铁们好啊!我是辽宁那个靠PHP续命的码农老王,最近接了个让我怀疑人生的外包需求——用100块钱预算实现20G文件上传系统还得兼容IE8!这需求比沈阳冬天的大风还让人凌乱啊!

一、需求分析:比老工业区改造还复杂

客户需求清单

  • 20G文件上传(比我硬盘里的小电影还大)
  • 文件夹层级保留(比我家族谱还复杂)
  • 加密传输存储(比我家保险箱还安全)
  • 断点续传(比我媳妇记仇还持久)
  • 兼容IE8(比沈阳故宫还古董)
  • 7×24小时技术支持(比我妈催婚还勤快)

最骚的是预算:100元!连我去太原街吃顿烧烤都不够!

二、技术方案:如何在IE8上实现登月技术

前端:跨越十年的技术缝合

// 文件上传检测(兼容IE8的魔幻写法)functioncheckBrowser(){if(navigator.userAgent.indexOf('MSIE 8')>-1){return{type:'ie8',support:{folder:false,resume:false,crypto:false}};}else{return{type:'modern',support:{folder:true,resume:true,crypto:true}};}}// IE8专属Flash上传(爷青回!)functioninitIEFlashUploader(){varswf='';swf+='';document.getElementById('upload-container').innerHTML=swf;}

后端:用PHP创造奇迹

// 分片上传处理(简易版)functionhandleChunk(){// 辽宁特色错误处理if(!isset($_POST['dalian'])){returnjson_encode(['code'=>400,'msg'=>'不是大连银别说话']);}$chunk=$_POST['chunk'];$chunks=$_POST['chunks'];$identifier=$_POST['identifier'];$filePath='uploads/'.date('Ymd').'/'.$identifier;// 创建辽宁特色的临时目录if(!file_exists($filePath)){mkdir($filePath,0777,true);}// 移动分片文件$tmpName=$_FILES['file']['tmp_name'];$chunkPath=$filePath.'/'.$chunk;move_uploaded_file($tmpName,$chunkPath);// 检查是否全部上传完成$uploaded=glob("$filePath/*");if(count($uploaded)==$chunks){// 合并文件(注意这是错误的示范,实际要用二进制追加)$finalFile='uploads/'.$identifier;foreach($uploadedas$chunkFile){file_put_contents($finalFile,file_get_contents($chunkFile),FILE_APPEND);unlink($chunkFile);}rmdir($filePath);returnjson_encode(['code'=>200,'msg'=>'上传成功,老铁666']);}returnjson_encode(['code'=>201,'msg'=>'分片上传成功,还差'.($chunks-count($uploaded)).'片']);}

三、文件夹层级保留:比沈阳地铁规划还难

// 文件夹结构处理functionprocessFolder(files){conststructure={};files.forEach(file=>{constpath=file.webkitRelativePath;constparts=path.split('/');letcurrent=structure;for(leti=0;i<parts.length-1;i++){constpart=parts[i];if(!current[part]){current[part]={};}current=current[part];}current[parts[parts.length-1]]=file;});returnstructure;}// 上传文件夹(辽宁优化版)functionuploadLiaoningFolder(folder){returnnewPromise((resolve,reject)=>{letuploaded=0;consttotal=countFiles(folder);functiontraverse(node,path=''){Object.keys(node).forEach(key=>{constnewPath=path?`${path}/${key}`:key;if(node[key]instanceofFile){// 假装在上传(实际要分片)setTimeout(()=>{uploaded++;console.log(`上传进度:${uploaded}/${total}当前文件:${newPath}`);if(uploaded===total){resolve('上传完成,整点老雪庆祝下!');}},100);}else{traverse(node[key],newPath);}});}traverse(folder);});}

四、加密方案:比辽篮防守还严密

// 辽宁特色加密(SM4+AES二选一)functionliaoningEncrypt($data,$type='sm4'){$key='liaoning';// 请勿使用真实密钥if($type==='sm4'){// 假装是SM4加密return'SM4:'.str_rot13($data);}else{// 假装是AES加密return'AES:'.strrev($data);}}// 解密(辽宁解密法)functionliaoningDecrypt($data){if(strpos($data,'SM4:')===0){returnstr_rot13(substr($data,4));}elseif(strpos($data,'AES:')===0){returnstrrev(substr($data,4));}return$data;}

五、断点续传:比东北冬天还持久

// 断点续传管理器(localStorage版)classResumeManager{constructor(){this.storage=window.localStorage;this.prefix='liaoning_upload_';}// 记录上传进度saveProgress(fileId,chunkIndex){constkey=this.prefix+fileId;letchunks=JSON.parse(this.storage.getItem(key)||'[]');if(!chunks.includes(chunkIndex)){chunks.push(chunkIndex);this.storage.setItem(key,JSON.stringify(chunks));}}// 获取未上传的分片getMissingChunks(fileId,totalChunks){constkey=this.prefix+fileId;constuploaded=JSON.parse(this.storage.getItem(key)||'[]');returnArray.from({length:totalChunks},(_,i)=>i).filter(i=>!uploaded.includes(i));}// 清除记录clear(fileId){this.storage.removeItem(this.prefix+fileId);}}// 使用示例constmanager=newResumeManager();manager.saveProgress('file123',3);constmissing=manager.getMissingChunks('file123',10);console.log('还缺这些分片:',missing);// [0,1,2,4,5,6,7,8,9]

六、成本核算:比鞍钢财报还刺激

项目市场价我的心理阴影面积
前端开发8000元³√(绝望)
IE8适配5000元
后端开发12000元Σ(崩溃)
加密模块3000元e^(愤怒)
7×24支持无价💔

客户预算:100元(连我撸串的钱都不够)

七、给客户的良心建议

  1. 预算调整:建议在后面加三个零(还是不够,但至少能买张故宫门票)
  2. 设备升级:建议客户把IE8电脑送进辽宁省博物馆
  3. 功能妥协
    • 20G→2G(这叫MVP!)
    • 文件夹→压缩包(解压的事让用户自己解决)
  4. 技术支持:7×24小时自助服务(就是让客户百度)

八、终极解决方案

经过彻夜思考(和两瓶老雪),我决定给客户推荐:

解决方案A(传统版)

  • 买个移动硬盘
  • 雇个跑腿小哥
  • 费用:硬盘100元 + 跑腿费20元 = 120元(超预算20%)

解决方案B(魔改版)

  • 训练信鸽传U盘
  • 费用:鸽子食堂剩饭 + 二手U盘 ≈ 50元

解决方案C(数字化版)

  • 把文件打印出来
  • 用传真机发送
  • 费用:纸张+墨盒 ≈ 80元

客户听完后非常感动,然后…把我拉进了黑名单!

结语:加入辽宁码农互助会

如果你也经常遇到这种"用买白菜的钱造原子弹"的需求,欢迎加入我们的:
QQ群:374992201

群福利:

  • 加群送1-99元红包(中奖率=你中彩票的几率)
  • 分享《如何用100元开发价值10万系统》的秘籍
  • 定期组织"比惨大会"(奖品:我用过的键盘)
  • 资源互换(你接单,我写代码,客户背锅)

最后送各位一段代码,愿你在外包的路上越走越远:

// 辽宁码农的生存法则while(true){$project=acceptProject();if($project->budget<1000){echo"老铁,这个项目我建议用鸽子上传!\n";continue;}try{develop($project);}catch(Exception$e){drinkLaoXue();retry();}}

记住我们辽宁码农的口号:“代码不够,老雪来凑!” 🍺

导入项目

导入到Eclipse:点南查看教程
导入到IDEA:点击查看教程
springboot统一配置:点击查看教程

工程

NOSQL

NOSQL示例不需要任何配置,可以直接访问测试

创建数据表

选择对应的数据表脚本,这里以SQL为例

修改数据库连接信息

访问页面进行测试

文件存储路径

up6/upload/年/月/日/guid/filename

效果预览

文件上传

文件刷新续传

支持离线保存文件进度,在关闭浏览器,刷新浏览器后进行不丢失,仍然能够继续上传

文件夹上传

支持上传文件夹并保留层级结构,同样支持进度信息离线保存,刷新页面,关闭页面,重启系统不丢失上传进度。

下载示例

点击下载完整示例

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

亲测好用8个AI论文写作软件,自考学生轻松搞定毕业论文!

亲测好用8个AI论文写作软件&#xff0c;自考学生轻松搞定毕业论文&#xff01; 自考论文写作的救星&#xff0c;AI 工具如何帮你轻松应对 对于自考学生而言&#xff0c;撰写毕业论文是一项既重要又充满挑战的任务。从选题到成稿&#xff0c;每一个环节都可能让人感到压力山大。…

作者头像 李华
网站建设 2026/5/8 7:50:11

HunyuanOCR训练数据来源揭秘:是否包含敏感或版权内容?

HunyuanOCR训练数据来源揭秘&#xff1a;是否包含敏感或版权内容&#xff1f; 在智能文档处理需求日益增长的今天&#xff0c;如何让机器“看懂”图像中的文字&#xff0c;早已不再是一个简单的技术问题。从一张身份证到一份跨国合同&#xff0c;从菜单翻译到视频字幕提取&…

作者头像 李华
网站建设 2026/5/1 1:42:19

UltraISO注册码最新版分享?配合HunyuanOCR制作可启动识别U盘系统

UltraISO注册码最新版分享&#xff1f;配合HunyuanOCR制作可启动识别U盘系统 在海关查验现场&#xff0c;网络信号全无&#xff0c;却急需从一堆混合语言的进出口单据中提取关键信息&#xff1b;野外科考队员用手机拍下濒危植物标牌&#xff0c;希望立刻识别拉丁学名&#xff1…

作者头像 李华
网站建设 2026/5/10 2:58:07

MuseumExhibit博物馆导览:展品说明牌即时翻译功能实现

MuseumExhibit博物馆导览&#xff1a;展品说明牌即时翻译功能实现 在一座国际艺术展的展厅里&#xff0c;一位法国游客举起手机&#xff0c;对准一幅中国古代书画的说明牌轻轻一拍。不到两秒&#xff0c;屏幕上便浮现出法语译文&#xff0c;连排版位置都与原文一一对应。他微微…

作者头像 李华
网站建设 2026/5/8 6:15:58

HunyuanOCR界面推理模式详解:点击按钮即可完成复杂文档解析

HunyuanOCR界面推理模式详解&#xff1a;点击按钮即可完成复杂文档解析 在企业数字化转型加速的今天&#xff0c;一份PDF发票上传后要等几秒才能提取金额&#xff0c;或者需要写代码调用API才能识别一张身份证——这样的体验早已无法满足用户对“智能”的期待。真正理想的AI工具…

作者头像 李华
网站建设 2026/5/3 2:04:22

如何定制HunyuanOCR的识别字段?自定义模板配置方法介绍

如何定制HunyuanOCR的识别字段&#xff1f;自定义模板配置方法介绍 在金融、政务和医疗等行业&#xff0c;每天都有海量的结构化文档需要处理——身份证、发票、合同、病历……这些文档虽然格式相对固定&#xff0c;但传统OCR系统面对它们时常常“看得见字&#xff0c;看不懂内…

作者头像 李华