news 2026/5/14 2:27:52

有没有ASP.NET示例代码展示大文件的目录结构断点续传?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有没有ASP.NET示例代码展示大文件的目录结构断点续传?

《一个卑微.NET程序员接的离谱外包项目》

大家好,我是一个挣扎在深圳温饱线的.NET程序员。最近接了个外包项目,客户要求那叫一个刺激…让我用原生JS实现20G大文件上传下载,还得兼容IE8!预算100块还要求7*24小时服务!来,咱们一起看看这个"梦想"项目怎么实现。

项目需求再品鉴

  1. 文件大小:20G!这不是上传文件,这是上传整个青春啊
  2. 兼容性:IE8!这浏览器比我侄子的年纪都大
  3. 功能:文件夹上传保留层级,断点续传,加密传输
  4. 预算:100块!还不够我买杯星巴克提神
  5. 服务:7*24小时!比我女朋友还粘人

技术选型:在夹缝中求生

前端方案

// 检测IE8的"优雅"方式functionisIE8(){return/*@cc_on!@*/false||document.documentMode===8;}// IE8下的"现代"解决方案if(isIE8()){alert("您的浏览器太老了,建议升级!但我知道您不会听...");// 这里只能上Flash方案了,虽然Adobe早就不维护了document.write('...');}else{// 正常人用的现代方案constuploader=newModernUploader();}

后端C#处理

// 处理20G文件的ASP.NET代码publicvoidUploadFile(){try{varrequest=HttpContext.Current.Request;if(request.Files.Count>0){// 检查磁盘空间 - 毕竟20G呢vardrive=newDriveInfo("E");if(drive.AvailableFreeSpace<20L*1024*1024*1024){thrownewOutOfDiskSpaceException("老板,该加硬盘了!");}// 这里应该有很复杂的处理逻辑...// 但预算只有100块,所以...request.Files[0].SaveAs("E:\\temp\\"+request.Files[0].FileName);}}catch(Exceptionex){// 100块的项目就别考虑错误处理了thrownewException("出错啦!但我不会告诉你具体原因,反正你也不会加钱",ex);}}

文件夹层级保持的"黑科技"

// 前端获取文件夹结构的"神奇"代码functiongetFolderStructure(element){if(isIE8()){// IE8下获取文件夹结构?开玩笑呢!alert("IE8不支持文件夹上传,但客户说要兼容...");return[];}// 现代浏览器可以webkitRelativePathletstructure=[];for(letfileofelement.files){if(file.webkitRelativePath){structure.push(file.webkitRelativePath);}else{// 普通文件上传structure.push(file.name);}}returnstructure;}

断点续传的"经济型"实现

// 断点续传服务端实现publicclassResumeService{// 用数据库记录进度?100块预算用不起!privatestaticDictionary_progress=newDictionary();publiclongGetProgress(stringfileId){if(_progress.ContainsKey(fileId))return_progress[fileId];return0;}publicvoidUpdateProgress(stringfileId,longprogress){_progress[fileId]=progress;}}

项目总结与感悟

  1. 技术可行性:理论上可能,实际上要命
  2. 经济可行性:100块连测试IE8的虚拟机都买不起
  3. 人生建议:这种项目还是留给"有梦想"的年轻人吧

最后送给大家一句金玉良言:“有些钱,真的没必要赚”。我现在就准备退群删好友连夜买站票跑路,这100块的红包谁爱抢谁抢吧!

(注:以上代码纯属娱乐,切勿用于实际项目。真要实现这种需求,建议预算后面至少加4个零,或者直接劝客户放弃IE8)

设置框架

安装.NET Framework 4.7.2
https://dotnet.microsoft.com/en-us/download/dotnet-framework/net472
框架选择4.7.2

添加3rd引用

编译项目

NOSQL

NOSQL无需任何配置可直接访问页面进行测试

SQL

使用IIS
大文件上传测试推荐使用IIS以获取更高性能。

使用IIS Express

小文件上传测试可以使用IIS Express

创建数据库

配置数据库连接信息

检查数据库配置

访问页面进行测试


相关参考:
文件保存位置,

效果预览

文件上传

文件刷新续传

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

文件夹上传

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

下载完整示例

下载完整示例

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

交叉编译(一)

1. Makefile的含义• Makefile 是一种用于管理和自动化软件编译过程的文本文件&#xff0c;也就是说Makefile 类似是“自动化的做菜食谱”——告诉电脑用哪些原料&#xff08;源文件&#xff0c;语句&#xff09;、按什么步骤&#xff08;编译/链接命令&#xff09;&#xff0c…

作者头像 李华
网站建设 2026/5/14 2:27:33

【春招必看】一次性入门openlayers和cesium两个地图开发框架

春节过后&#xff0c;即将迎来26年毕业季&#xff0c;选择就业的同学&#xff0c;如果还没拿到offer&#xff0c;就要开始准备26年春招了。如果想找WebGIS相关的岗位&#xff0c;可以通过招聘信息&#xff0c;了解到企业的具体要求。其中&#xff0c;openlayers和cesium有多重要…

作者头像 李华
网站建设 2026/5/10 5:39:18

LLM 联网搜索,到底是咋回事?

0x0 序 近段时间 DeepSeek 的服务火遍了全网&#xff0c;无论是使用网页还是使用 App 都能享受到 深度思考 联网搜索 的至尊体验。奈何免费的东西往往是需要排队的&#xff0c;从年开始 DeepSeek 的服务就一度处于不可用状态&#xff0c;就算是年后&#xff0c;网络搜索也是经…

作者头像 李华
网站建设 2026/5/1 17:54:45

万字详解大模型推理加速核心原理丨茶思AI推理

本期聚焦】万字详解大模型推理加速分形原理&#xff0c;重塑资源优化体系&#xff1b;月之暗面发布Kimi K2.5&#xff0c;实现AI推理从“单体思考”到“集群作战”进化&#xff1b;Hyper3D Rodin Gen-2 Edit上线&#xff0c;3D生成推理迈入可编辑时代&#xff1b;人大联合团队发…

作者头像 李华
网站建设 2026/4/30 23:31:14

Java毕设项目:基于springboot的食品安全监测及风险预警系统的设计与实现(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华