2026年SEM代运营推广公司哪家好:专业机构能力分析与主流选型参考
2026/7/16 14:23:04
“兄弟,我们要做个能在IE8上传20G文件的功能,要支持文件夹结构保留、断点续传、加密传输,预算是100块哈!对了,7×24小时售后别忘了!” —— 这是我见过最硬核的外包需求,没有之一。
前端:Vue3 CLI + 原生JS + WebUploader + 为IE8写polyfill(写到怀疑人生)
后端:ASP.NET WebForm(是的,2023年了还有人用这个)
数据库:SQL Server(甲方说Access不够"专业")
预算:100元(包含我的精神损失费)
// 文件:ie8-support.js// 这个文件的作用是让我保持清醒不要摔键盘functionsupportIE8(){if(navigator.userAgent.indexOf('MSIE 8')>-1){alert('尊敬的IE8用户,建议您:\n1.升级浏览器\n2.换个电脑\n3.换个需求');thrownewError('程序员自杀式异常');}}// 文件:big-file-upload.jsfunctionupload20GBFile(file){returnnewPromise((resolve,reject)=>{// 先检查硬盘空间if(file.size>20*1024*1024*1024){reject('您是想上传整个Steam游戏库吗?');return;}// 模拟加密过程constencryptedData="假装加密的"+file.name;// 分片上传逻辑constchunkSize=5*1024*1024;// 5MBletuploaded=0;// 从localStorage恢复进度constsavedProgress=localStorage.getItem('upload_'+file.name);if(savedProgress){uploaded=parseInt(savedProgress);console.log(`从上次的${uploaded}字节继续上传`);}// 模拟上传过程constinterval=setInterval(()=>{uploaded+=chunkSize;localStorage.setItem('upload_'+file.name,uploaded);if(uploaded>=file.size){clearInterval(interval);resolve(`成功上传${file.name}(理论上)`);}},1000);});}// FileUploadHandler.ashxpublicclassFileUploadHandler:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){// 检查预算是否足够if(context.Request.Headers["Budget"]!="100"){context.Response.Write("{\"error\":\"预算不足,请充值\"}");return;}try{varfile=context.Request.Files[0];// 验证文件大小if(file.ContentLength>21474836480){context.Response.Write("{\"error\":\"20G?您这是要上传蓝光原盘吗?\"}");return;}// "加密存储"varsavePath=Path.Combine("E:\\",Guid.NewGuid()+".encrypted");file.SaveAs(savePath);// 假装加密了File.WriteAllText(savePath+".meta",$"原文件名:{file.FileName}\n加密方式:脑补加密");context.Response.Write("{\"success\":true}");}catch(Exceptionex){context.Response.Write($"{{\"error\":\"{ex.Message}\"}}");}}publicboolIsReusable=>false;}接外包前务必确认:
对于这种需求,合理报价应该是:
欢迎加入QQ群374992201,这里有:
特别声明:本代码仅供娱乐,实际使用可能导致项目延期、客户投诉、头发脱落等副作用。建议接单前购买工伤保险。
安装.NET Framework 4.7.2
https://dotnet.microsoft.com/en-us/download/dotnet-framework/net472
框架选择4.7.2
NOSQL无需任何配置可直接访问页面进行测试
使用IIS
大文件上传测试推荐使用IIS以获取更高性能。
小文件上传测试可以使用IIS Express
相关参考:
文件保存位置,
支持离线保存文件进度,在关闭浏览器,刷新浏览器后进行不丢失,仍然能够继续上传
支持上传文件夹并保留层级结构,同样支持进度信息离线保存,刷新页面,关闭页面,重启系统不丢失上传进度。
下载完整示例