网站电脑培训班办公软件怎么查询自己的商标

张小明 2026/1/11 7:42:45
网站电脑培训班办公软件,怎么查询自己的商标,怎么自己创建一个免费网站,网络工程师免费教程《政府信创项目大文件传输攻坚实录#xff1a;从开源困境到自研方案的破局之路》 ——北京.NET程序员的国产化适配实战 第一章#xff1a;项目背景与核心挑战 作为某政府招投标项目的核心开发成员#xff0c;我负责实现20GB级大文件传输系统#xff0c;需满足以下严苛要求…《政府信创项目大文件传输攻坚实录从开源困境到自研方案的破局之路》——北京.NET程序员的国产化适配实战第一章项目背景与核心挑战作为某政府招投标项目的核心开发成员我负责实现20GB级大文件传输系统需满足以下严苛要求功能需求支持单个文件/文件夹上传下载保留层级结构支持断点续传、秒传MD5校验传输进度可视化精确到每个子文件兼容性要求浏览器IE8、Chrome、Firefox、龙芯浏览器、红莲花浏览器、奇安信浏览器操作系统Windows、统信UOS、中标麒麟、银河麒麟数据库SQL Server、MySQL、Oracle、达梦、人大金仓技术栈限制前端Vue2 Element UI需兼容IE8的Polyfill方案后端ASP.NET Core 3.1需适配国产中间件存储分布式文件系统对接政府指定存储设备开源评估惨败WebUploader停更多年IE8兼容性差无信创浏览器支持Plupload文件夹上传需FlashIE已淘汰无国产化适配Uppy现代浏览器友好但IE8直接崩溃结论开源无解必须自研。第二章前端方案——Vue2的兼容性炼金术1. 浏览器兼容性基座2. 文件夹上传组件兼容IE8// src/components/FolderUploader.vueexportdefault{data(){return{files:[],isDragging:false,chunkSize:5*1024*1024// 5MB分片}},methods:{// 触发文件夹选择IE8兼容方案triggerFolderInput(){if(window.FileReaderwindow.Filewindow.FileListwindow.Blob){// 现代浏览器使用input[typefile] webkitdirectorythis.$refs.folderInput.setAttribute(webkitdirectory,)this.$refs.folderInput.click()}else{// IE8使用ActiveXObject需政府环境配置权限try{constshellnewActiveXObject(Shell.Application)constfoldershell.BrowseForFolder(0,请选择文件夹,0)if(folder){this.scanFolderIE(folder)}}catch(e){this.$message.error(您的浏览器不支持文件夹上传请使用Chrome/Firefox)}}},// IE专属文件夹扫描递归处理scanFolderIE(folder){constfolderItemsfolder.Items()for(leti0;ifolderItems.Count;i){constitemfolderItems.Item(i)if(item.IsFolder){this.scanFolderIE(item.GetFolder)}elseif(item.Path){this.files.push({name:item.Name,path:item.Path,size:item.Size,lastModified:item.ModifyDate})}}},// 文件分片上传通用方案asyncuploadFile(file){constfileIdthis.calculateFileId(file)// MD5生成唯一IDconstchunksMath.ceil(file.size/this.chunkSize)for(leti0;ichunks;i){conststarti*this.chunkSizeconstendMath.min(file.size,startthis.chunkSize)constchunkfile.slice(start,end)constformDatanewFormData()formData.append(fileId,fileId)formData.append(chunkIndex,i)formData.append(totalChunks,chunks)formData.append(chunkData,chunk)formData.append(fileName,file.name)formData.append(relativePath,file.relativePath||)// 保留层级try{awaitaxios.post(/api/upload/chunk,formData,{onUploadProgress:(e){this.updateProgress(fileId,i,chunks,e.loaded)}})}catch(e){console.error(分片${i}上传失败,e)throwe}}// 通知服务器合并分片awaitaxios.post(/api/upload/merge,{fileId,fileName:file.name})}}}关键点IE8兼容通过ActiveXObject实现文件夹遍历需政府环境开启权限现代浏览器使用webkitdirectory属性Chrome/Edge信创浏览器通过User-Agent检测降级为单文件上传模式第三章后端方案——ASP.NET Core的分片传输引擎1. 分片上传控制器// Controllers/UploadController.cs[ApiController][Route(api/[controller])]publicclassUploadController:ControllerBase{privatereadonlyIFileStorageService_storageService;privatereadonlyIDatabaseService_dbService;// 适配多数据库// 分片上传接口[HttpPost(chunk)]publicasyncTaskUploadChunk(IFormFilechunkData,[FromForm]stringfileId,[FromForm]intchunkIndex,[FromForm]inttotalChunks){if(chunkDatanull||chunkData.Length0)returnBadRequest(无效的分片数据);// 临时存储分片路径格式/temp/{fileId}/{chunkIndex}.partvartempPathPath.Combine(temp,fileId,${chunkIndex}.part);Directory.CreateDirectory(Path.GetDirectoryName(tempPath));using(varstreamnewFileStream(tempPath,FileMode.Create)){awaitchunkData.CopyToAsync(stream);}// 记录分片信息到数据库达梦/人大金仓兼容await_dbService.RecordChunk(newChunkRecord{FileIdfileId,ChunkIndexchunkIndex,TotalChunkstotalChunks,SizechunkData.Length,ReceivedTimeDateTime.Now});returnOk(new{successtrue});}// 合并分片接口[HttpPost(merge)]publicasyncTaskMergeChunks([FromBody]MergeRequestrequest){vartempDirPath.Combine(temp,request.FileId);if(!Directory.Exists(tempDir))returnNotFound(未找到分片数据);// 按顺序读取所有分片varchunkFilesDirectory.GetFiles(tempDir,*.part).OrderBy(fint.Parse(Path.GetFileNameWithoutExtension(f))).ToList();// 最终存储路径保留原始相对路径varfinalPathPath.Combine(uploads,request.RelativePath,request.FileName);Directory.CreateDirectory(Path.GetDirectoryName(finalPath));// 合并分片using(varfinalStreamnewFileStream(finalPath,FileMode.Create)){foreach(varchunkFileinchunkFiles){varchunkDataawaitSystem.IO.File.ReadAllBytesAsync(chunkFile);awaitfinalStream.WriteAsync(chunkData,0,chunkData.Length);System.IO.File.Delete(chunkFile);// 删除临时分片}}// 清理空目录Directory.Delete(tempDir);// 记录完整文件信息到数据库await_dbService.RecordFinalFile(newFinalFileRecord{FileIdrequest.FileId,FilePathfinalPath,SizenewFileInfo(finalPath).Length,UploadTimeDateTime.Now});returnOk(new{url$/downloads/{finalPath}});}}2. 数据库适配层抽象多数据库支持// Services/IDatabaseService.cspublicinterfaceIDatabaseService{TaskRecordChunk(ChunkRecordrecord);TaskRecordFinalFile(FinalFileRecordrecord);TaskGetChunks(stringfileId);}// Implementations/SqlServerDatabaseService.cspublicclassSqlServerDatabaseService:IDatabaseService{privatereadonlyApplicationDbContext_context;publicSqlServerDatabaseService(ApplicationDbContextcontext){_contextcontext;}publicasyncTaskRecordChunk(ChunkRecordrecord){_context.Chunks.Add(record);await_context.SaveChangesAsync();}// 其他方法实现...}// Implementations/DamengDatabaseService.cspublicclassDamengDatabaseService:IDatabaseService{privatereadonlyIDmProvider_dmProvider;// 达梦数据库专用ProviderpublicDamengDatabaseService(IDmProviderdmProvider){_dmProviderdmProvider;}publicasyncTaskRecordChunk(ChunkRecordrecord){// 达梦数据库特有语法处理varcmd_dmProvider.CreateCommand();cmd.CommandTextINSERT INTO CHUNK_RECORDS VALUES(...);// ...参数绑定awaitcmd.ExecuteNonQueryAsync();}}关键设计分片存储临时分片按/temp/{fileId}/{index}.part组织断点续传通过数据库记录已上传分片索引数据库适配通过依赖注入动态切换SQL Server/达梦/人大金仓实现第四章信创环境适配实战1. 操作系统兼容性处理// Program.cs 中检测操作系统并加载对应配置publicstaticIHostBuilderCreateHostBuilder(string[]args){varisLinuxRuntimeInformation.IsOSPlatform(OSPlatform.Linux);varisKylinFile.Exists(/etc/kylin-release);// 银河麒麟检测varisUOSFile.Exists(/etc/uos-release);// 统信UOS检测returnHost.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder{webBuilder.UseStartup();if(isKylin||isUOS){webBuilder.UseKestrel(options{options.ListenAnyIP(5000,listenOptions{listenOptions.ProtocolsHttpProtocols.Http1AndHttp2;});});}});}2. 信创浏览器降级方案// src/utils/browserDetect.jsexportfunctiondetectBrowser(){constuanavigator.userAgentif(ua.includes(LongArch))returnlongxin// 龙芯浏览器if(ua.includes(RedLotus))returnredlotus// 红莲花浏览器if(ua.includes(QiAnXin))returnqianxin// 奇安信浏览器if(ua.includes(MSIE 8)||ua.includes(Trident/5))returnie8returnmodern}// 在上传组件中使用constbrowserTypedetectBrowser()if(browserTypeie8||browserTypelongxin){// 禁用文件夹上传显示警告this.$message.warning(当前浏览器仅支持单文件上传)}第五章项目成果与经验总结1. 最终实现效果功能20GB文件上传下载支持文件夹层级结构兼容性✅ IE8需ActiveX权限✅ 统信UOS/中标麒麟/银河麒麟✅ 龙芯/红莲花/奇安信浏览器性能5MB分片传输20GB文件约需4000个分片实测3小时完成2. 关键决策点放弃开源WebUploader等组件无法满足信创要求分片传输解决大文件内存溢出问题数据库抽象通过接口隔离不同数据库实现3. 后续优化方向WebAssembly加速用C#编写分片合并逻辑编译为WASMP2P传输在政府内网环境探索点对点加速方案结语在信创环境下开发大文件传输系统就像在带着镣铐跳舞。但通过合理的架构设计和兼容性处理我们最终交付了满足政府需求的稳定方案。完整代码已开源至内部GitLab因涉密需申请访问欢迎同行交流可加QQ群374992201。完——北京政府项目组·张工设置框架安装.NET Framework 4.7.2https://dotnet.microsoft.com/en-us/download/dotnet-framework/net472框架选择4.7.2添加3rd引用编译项目NOSQLNOSQL无需任何配置可直接访问页面进行测试SQL使用IIS大文件上传测试推荐使用IIS以获取更高性能。使用IIS Express小文件上传测试可以使用IIS Express创建数据库配置数据库连接信息检查数据库配置访问页面进行测试相关参考文件保存位置效果预览文件上传文件刷新续传支持离线保存文件进度在关闭浏览器刷新浏览器后进行不丢失仍然能够继续上传文件夹上传支持上传文件夹并保留层级结构同样支持进度信息离线保存刷新页面关闭页面重启系统不丢失上传进度。批量下载支持文件批量下载下载续传文件下载支持离线保存进度信息刷新页面关闭页面重启系统均不会丢失进度信息。文件夹下载支持下载文件夹并保留层级结构不打包不占用服务器资源。下载示例下载完整示例
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

购物网站制作费用跨境电商自建站是什么意思

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个极简图像哈希验证原型,功能:1) 文件选择器上传单张图片 2) 计算并显示哈希值 3) 简单匹配验证 4) 显示验证结果。使用纯前端技术HTML/JS实现&#x…

张小明 2026/1/10 6:23:42 网站建设

大连建设网站公司苏州建站公司哪个济南兴田德润实惠吗

Linly-Talker支持多人协同对话场景模拟 在虚拟主播、AI客服、远程教育等应用日益普及的今天,用户对数字人系统的期待早已超越了“能说会动”的初级阶段。人们希望看到的是更自然、更具互动性的角色——不仅能听懂问题,还能与其他角色协作交流&#xff0c…

张小明 2026/1/10 18:38:26 网站建设

电子政务网站建设要求免费源码网站

打开手机小程序,上传一张舌苔照片 3 秒出体质分析,输入症状描述就能获得 AI 初步诊断建议——这些看似神奇的 AI 医疗体验,核心是小程序与 AI 技术的精准适配。不同于传统医疗 APP,小程序的轻量化特性对 AI 技术落地提出了特殊要求…

张小明 2025/12/26 22:55:48 网站建设

网站建设的公司哪家好呢附近的代理记账公司有哪些

终极手册:用unrpyc轻松搞定RenPy反编译的10个核心技巧 【免费下载链接】unrpyc A renpy script decompiler 项目地址: https://gitcode.com/gh_mirrors/un/unrpyc 你是否曾经面对编译后的.rpyc文件束手无策?想要修改游戏内容却找不到原始脚本&…

张小明 2025/12/26 22:55:45 网站建设

c2c电子商务网站需具备哪些业务功能wordpress 插件经验

像素字体创作革命:Fusion Pixel Font 深度创作指南 【免费下载链接】fusion-pixel-font 开源像素字体。支持 8、10 和 12 像素。 项目地址: https://gitcode.com/gh_mirrors/fu/fusion-pixel-font 在数字设计的世界中,像素字体正经历着一场真正的…

张小明 2026/1/1 19:23:03 网站建设

昆山网站建设推荐佛山做外贸网站

本文详细阐述了AI产品经理与普通产品经理的区别在于具备AI思维,介绍了人工智能产业链结构、AI产品经理四象限分类(突破型、创新型、应用型、普及型)及能力提升方法。文章强调AI产品设计需前端简单后端复杂,系统越复杂越智能&#…

张小明 2025/12/26 22:55:39 网站建设