Unity项目实战:用自制的UGUI TreeView做一个PDF文件管理器
2026/4/18 13:04:14
大家好,我就是那个被要求用100块预算搞定20G文件上传、兼容IE8还要7x24小时免费支持的倒霉蛋。让我们一起来看看这个"合理"需求要怎么实现吧!
// 当我在IE8上尝试现代JS时的表情if(/*@cc_on !@*/false){alert("亲爱的IE8用户,建议您:\n1.升级浏览器\n2.换个电脑\n3.换个供应商");}要在IE8实现文件夹上传,我们需要穿越回2010年的技术:
// 假装这是IE8兼容的文件夹上传代码functionuploadFolderInIE8(){varmagic="请用户手动选择文件夹内所有文件";varmoreMagic="然后祈祷文件顺序不乱";returnmagic+moreMagic;}// ASP.NET 处理20G文件上传的优雅方式protectedvoidPage_Load(objectsender,EventArgse){try{// 第一步:祈祷服务器硬盘有足够空间PrayForDiskSpace();// 第二步:假装我们处理得了20G文件if(Request.Files.Count>0){varfile=Request.Files[0];if(file.ContentLength>2147483648){// 2GBResponse.Write("{\"error\":\"请升级到我们的企业版,仅需99999元\"}");return;}// 实际处理代码...}}catch(OutOfMemoryException){Response.Write("{\"error\":\"服务器内存已升天\"}");}}// 前端断点续传逻辑functionresumeUpload(){if(typeoflocalStorage==='undefined'){alert("IE8用户请记住自己传到哪里了");return;}// 现代浏览器可以存储上传进度localStorage.setItem('uploadProgress','0.001%');}虽然上面的代码充满了程序员的黑色幽默,但现实中这样的需求确实很难用100元预算实现。以下是一些正经建议:
如果你也经常遇到这种"合理"需求,欢迎加入我们的"程序员心理健康互助群"(QQ群:374992201)。在这里你可以:
记住我们的口号:“代码可以乱,心态不能崩!”
最后,关于那个100元预算的项目 - 我建议你告诉客户,100块连给IE8买束花告别都不够,是时候让它安息了。😇
安装.NET Framework 4.7.2
https://dotnet.microsoft.com/en-us/download/dotnet-framework/net472
框架选择4.7.2
NOSQL无需任何配置可直接访问页面进行测试
使用IIS
大文件上传测试推荐使用IIS以获取更高性能。
小文件上传测试可以使用IIS Express
相关参考:
文件保存位置,
支持离线保存文件进度,在关闭浏览器,刷新浏览器后进行不丢失,仍然能够继续上传
支持上传文件夹并保留层级结构,同样支持进度信息离线保存,刷新页面,关闭页面,重启系统不丢失上传进度。
下载完整示例