news 2026/2/18 14:15:42

有没有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/2/17 14:13:01

萤石开放平台 音视频 | 取流协议说明

目前萤石开放平台主要提供以下几种取流协议&#xff1a;EZOPEN协议&#xff08;萤石监控私有流&#xff09;、HLS协议&#xff08;标准流&#xff09;、RTMP协议&#xff08;标准流&#xff09;&#xff0c;每种协议有各自的优点和缺点。 下面以功能、性能、跨平台、扩展性进行…

作者头像 李华
网站建设 2026/2/17 8:42:36

2025LLM核心架构进展复盘:Attn与MOE研究精选(收藏版)

本文回顾了2025年大模型&#xff08;LLM&#xff09;在注意力机制&#xff08;Attn&#xff09;和专家混合&#xff08;MOE&#xff09;方面的核心架构进展。重点介绍了TPA、MoBA、NSA等创新方法&#xff0c;如低秩压缩KVcache、Top-k block注意力、原生稀疏注意力等&#xff0…

作者头像 李华
网站建设 2026/2/16 8:31:31

导师推荐!AI论文写作软件 千笔·专业论文写作工具 VS speedai 本科生专属

随着人工智能技术的迅猛迭代与普及&#xff0c;AI辅助写作工具已逐步渗透到高校学术写作场景中&#xff0c;成为本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生&#xff0c;开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时&#xf…

作者头像 李华
网站建设 2026/2/17 4:57:02

原理详解:XinServer 是如何做到接口一键生成的?

原理详解&#xff1a;XinServer 是如何做到接口一键生成的&#xff1f; 不知道你有没有过这种经历&#xff1a;产品经理拿着原型图过来&#xff0c;说下周一要上线一个内部管理系统&#xff0c;需要用户管理、部门管理、权限控制&#xff0c;外加一堆业务表单。你心里一咯噔&am…

作者头像 李华