从零上手恩智浦MM912H634评估板:硬件连接、软件调试与核心模块实战
2026/6/17 17:11:00
2023年XX月XX日 🌟 | 一个菜鸟程序员的“秃头”日记
早上8点:对着镜子默念三遍——“我能搞定10G文件上传!”(然后发现IE8连console.log都报错…)
上午10点:试图用WebUploader征服IE8,结果它用古老的ActiveX对我发起灵魂拷问。💔 于是怒写300行polyfill,现在我的代码像极了缝合怪。
下午3点:测试文件夹上传时,惊喜地发现龙芯浏览器把``读成了“未定义外星语”… 果断祭出递归遍历File API的祖传秘方!
// 文件切片加密(附赠中二注释版)functionsliceAndEncrypt(file,key='我爱山东大馒头'){constchunkSize=5*1024*1024;// 5MB一片,吃多了怕噎着letchunks=[];for(leti=0;i<file.size;i+=chunkSize){constchunk=file.slice(i,i+chunkSize);constencryptedChunk=XOREncrypt(chunk,key);// 自制加密(别问,问就是Base64改)chunks.push({index:i,hash:md5(`chunk_${i}_${file.name}_${Date.now()}`),// 给切片起个霸气的名字data:encryptedChunk});}returnchunks;}// IE8专属感动代码if(navigator.userAgent.indexOf('MSIE 8')>-1){document.write('<\/script>');console.log("尊敬的IE8用户,您正在体验考古级编程...");}<?php// 文件合并接口(带防呆设计)functionmergeFiles($fileName,$totalChunks){$outputPath="/uploads/merge_".$fileName;for($i=0;$i<$totalChunks;$i++){$chunkPath="/uploads/chunk_".$i."_".$fileName;if(!file_exists($chunkPath)){die(json_encode(["error"=>"第{$i}片丢了!是不是被猫吃了?"]));}file_put_contents($outputPath,file_get_contents($chunkPath),FILE_APPEND);}return["success"=>true,"path"=>$outputPath];}?>PS:欢迎推荐工作,薪资要求——够买防脱发洗发水就行! 😭
(代码仅供娱乐,实际开发记得删掉中二注释哦~)
安装.NET Framework 4.7.2
https://dotnet.microsoft.com/en-us/download/dotnet-framework/net472
框架选择4.7.2
NOSQL无需任何配置可直接访问页面进行测试
使用IIS
大文件上传测试推荐使用IIS以获取更高性能。
小文件上传测试可以使用IIS Express
相关参考:
文件保存位置,
支持离线保存文件进度,在关闭浏览器,刷新浏览器后进行不丢失,仍然能够继续上传
支持上传文件夹并保留层级结构,同样支持进度信息离线保存,刷新页面,关闭页面,重启系统不丢失上传进度。
支持文件批量下载
文件下载支持离线保存进度信息,刷新页面,关闭页面,重启系统均不会丢失进度信息。
支持下载文件夹,并保留层级结构,不打包,不占用服务器资源。
下载完整示例