软件工程主要是学什么长春网站优化方案

张小明 2026/1/3 11:42:33
软件工程主要是学什么,长春网站优化方案,外贸网站支付系统,网站好看的图标代码大文件上传系统开发指南#xff08;兼容IE8的Vue3WebForm实现#xff09; 项目概述 嘿#xff0c;兄弟#xff01;听说你接了个不可能完成的任务#xff1f;20G文件上传、兼容IE8、还要保留文件夹结构#xff1f;别慌#xff0c;让我这个老江湖带你飞兼容IE8的Vue3WebForm实现项目概述嘿兄弟听说你接了个不可能完成的任务20G文件上传、兼容IE8、还要保留文件夹结构别慌让我这个老江湖带你飞虽然预算只有100块但咱们程序员不就是喜欢挑战极限嘛系统架构前端Vue3 CLI但为了IE8兼容我们得用点黑科技后端ASP.NET WebFormSQL Server数据库文件存储服务器E盘传输加密SM4/AES前端加密后端解密断点续传本地存储服务器记录前端实现兼容IE8的现代方案1. 兼容IE8的Vue3环境搭建大文件上传系统2. 文件夹上传组件原生JS实现// src/components/FolderUploader.vueexportdefault{data(){return{fileList:[],isUploading:false,chunkSize:5*1024*1024,// 5MB每片encryptKey:this-is-a-32-byte-key-for-aes-256// 实际项目中应该从服务器获取}},methods:{triggerFileInput(){document.getElementById(fileInput).click();},uploadChunk(relativePath,chunk,chunkIndex,totalChunks,totalSize,fileObj){returnnewPromise((resolve,reject){constformDatanewFormData();formData.append(filePath,relativePath);formData.append(chunkIndex,chunkIndex);formData.append(totalChunks,totalChunks);formData.append(totalSize,totalSize);formData.append(chunk,newBlob([chunk]));formData.append(fileId,this.generateFileId(fileObj.file));constxhrnewXMLHttpRequest();xhr.open(POST,/api/Upload/UploadChunk,true);xhr.upload.onprogressfunction(e){if(e.lengthComputable){// 更新单个文件的进度这里简化处理}};xhr.onloadfunction(){if(xhr.status200){resolve(JSON.parse(xhr.responseText));}else{reject(newError(上传文件片失败));}};xhr.onerrorfunction(){reject(newError(网络错误));};xhr.send(formData);});},generateFileId(file){// 生成文件唯一ID用于断点续传returnfile.name-file.size-file.lastModified;},formatFileSize(bytes){if(bytes0)return0 Bytes;constk1024;constsizes[Bytes,KB,MB,GB];constiMath.floor(Math.log(bytes)/Math.log(k));returnparseFloat((bytes/Math.pow(k,i)).toFixed(2)) sizes[i];}}}后端实现ASP.NET WebForm1. 上传处理API// UploadHandler.ashx%WebHandlerLanguageC#ClassUploadHandler%publicclassUploadHandler:IHttpHandler{privatestaticreadonlystringUploadFolderE:\UploadedFiles\; private static readonly string ConnectionString System.Configuration.ConfigurationManager.ConnectionStrings[DefaultConnection].ConnectionString;publicvoidProcessRequest(HttpContextcontext){context.Response.ContentTypeapplication/json;try{if(context.Request.HttpMethodPOST){if(context.Request.Path.Contains(InitUpload)){HandleInitUpload(context);}}}catch(Exceptionex){context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(new{successfalse,messageex.Message}));}}privatevoidHandleInitUpload(HttpContextcontext){// 读取前端发送的文件结构using(varreadernewStreamReader(context.Request.InputStream)){varjsonreader.ReadToEnd();varstructureNewtonsoft.Json.JsonConvert.DeserializeObject(json);Directory.CreateDirectory(tempFolder);// 保存文件结构信息实际应用中应该存入数据库File.WriteAllText(Path.Combine(tempFolder,structure.json),json);context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(new{successtrue,sessionIdsessionId,message上传初始化成功}));}}privatevoidHandleUploadChunk(HttpContextcontext){varfilePathcontext.Request.Form[filePath];varchunkIndexint.Parse(context.Request.Form[chunkIndex]);vartotalChunksint.Parse(context.Request.Form[totalChunks]);vartotalSizelong.Parse(context.Request.Form[totalSize]);varfileIdcontext.Request.Form[fileId];varsessionIdcontext.Request.Form[sessionId];// 应该从cookie或header中获取context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(new{successtrue,chunkIndexchunkIndex,message文件片上传成功}));}publicboolIsReusablefalse;}2. 下载处理API// DownloadHandler.ashx%WebHandlerLanguageC#ClassDownloadHandler%publicclassDownloadHandler:IHttpHandler{privatestaticreadonlystringUploadFolderE:\UploadedFiles\; public void ProcessRequest(HttpContext context) { try { var filePath context.Request.QueryString[path];if(string.IsNullOrEmpty(filePath)){thrownewException(未指定文件路径);}// 防止目录遍历攻击filePathPath.GetFullPath(Path.Combine(UploadFolder,filePath));if(!filePath.StartsWith(Path.GetFullPath(UploadFolder))){thrownewException(无效的文件路径);}}catch(Exceptionex){context.Response.StatusCode500;context.Response.Write(ex.Message);}}publicboolIsReusablefalse;}IE8兼容性处理由于IE8不支持很多现代API我们需要做以下兼容处理File API兼容IE8不支持File和FileReaderAPI我们需要使用ActiveX或Flash作为后备方案但考虑到Flash已淘汰我们可以提示用户升级浏览器或使用传统上传方式XMLHttpRequest兼容IE8使用XDomainRequest进行跨域请求但我们的场景是同源所以标准的XMLHttpRequest足够JSON兼容引入JSON2.js或JSON3.js作为polyfillVue兼容使用Vue 2.x而不是Vue 3因为Vue 3不支持IE8-10修改后的前端入口兼容IE8// src/main.js (兼容IE8版本)// 使用Vue 2.ximportVuefromvue;importVueRouterfromvue-router;importAppfrom./App.vue;// 兼容性检查if(!window.console){window.console{log:function(){},error:function(){},warn:function(){}};}// 注册Vue插件Vue.use(VueRouter);// 路由配置constrouternewVueRouter({routes:[{path:/,component:()import(./components/FolderUploader.vue)}]});// 创建Vue实例newVue({el:#app,router,render:hh(App)});部署说明IIS配置确保启用ASP.NET功能增加上传文件大小限制在Web.config中数据库准备CREATETABLEUploadedFiles(IdINTIDENTITY(1,1)PRIMARYKEY,FilePath NVARCHAR(1000)NOTNULL,SizeBIGINTNOTNULL,UploadDateDATETIMENOTNULL,SessionId NVARCHAR(36)NOTNULL,UserId NVARCHAR(128)NULL-- 如果有用户系统);CREATETABLEUploadSessions(SessionId NVARCHAR(36)PRIMARYKEY,UserId NVARCHAR(128)NULL,StartTimeDATETIMENOTNULL,LastActiveDATETIMENOTNULL,StatusNVARCHAR(50)NOTNULL,FileStructure NVARCHAR(MAX)NULL);文件夹权限确保IIS应用池账户对E盘有读写权限开发文档要点系统架构前端Vue2 原生JS兼容IE8后端ASP.NET WebForm SQL Server存储服务器E盘功能说明文件夹上传保留结构大文件分片上传断点续传加密传输示例中简化处理兼容IE8现代浏览器限制说明IE8下无法实现真正的文件夹选择只能提示用户压缩后上传加密功能在IE8下需要简化处理部署步骤配置IIS设置数据库连接字符串配置上传文件夹权限总结兄弟这个项目确实有挑战性但并非不可能完成。关键点在于分层处理现代浏览器用现代方案老旧浏览器用简化方案渐进增强先实现基本功能再逐步添加高级特性性能优化分片上传、本地存储进度是关键虽然预算只有100块但我们可以使用开源组件简化加密实现或让服务器处理加密重点保证核心功能记住咱们程序员的价值不在于代码量而在于解决问题的能力这个项目搞定了你的技术水平绝对能上一个台阶以后接单更有底气最后欢迎加入我们的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进行投诉反馈,一经查实,立即删除!

免费黄页营销网站守游网络推广平台

六音音源修复版终极指南:一键解决洛雪音乐播放难题 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 六音音源修复版是专为洛雪音乐1.6.0及以上版本设计的专业音源修复工具,…

张小明 2025/12/30 0:41:26 网站建设

大作设计网站官网下载美业营销策划公司

CTGAN实战指南:三分钟学会生成高质量合成数据 【免费下载链接】CTGAN Conditional GAN for generating synthetic tabular data. 项目地址: https://gitcode.com/gh_mirrors/ct/CTGAN 你是否曾经因为数据隐私问题而无法使用真实数据进行开发?或者…

张小明 2026/1/2 20:20:53 网站建设

dw网站首页的导航怎么做邯郸信息港招聘信息

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

张小明 2026/1/3 10:33:49 网站建设

WordPress 网站成本信誉好的福州网站建设

JAX NumPy API:从替代到超越,重新定义高性能科学计算 引言:为什么需要另一个NumPy? 在Python科学计算领域,NumPy长久以来一直是无可争议的基石。它提供了高效的多维数组操作和广播机制,成为数据处理、机器学…

张小明 2026/1/1 3:07:11 网站建设

做建筑材料的网站如何制作网站平台

PhotoGIMP完全指南:从付费软件到免费专业图像编辑的无缝迁移 【免费下载链接】PhotoGIMP A Patch for GIMP 2.10 for Photoshop Users 项目地址: https://gitcode.com/gh_mirrors/ph/PhotoGIMP 你是否厌倦了Photoshop的高昂订阅费用?是否想要尝试…

张小明 2026/1/2 22:59:42 网站建设

纪实摄影网站推荐网站的构思

远程医疗:挑战、益处与 Office 365 的应用 远程医疗流程与优势 远程医疗旨在为患者提供无论地理位置如何都能获得相同或更高质量的持续医疗服务。患者致电医疗服务提供商的呼叫中心预约医生,分诊护士会询问相关问题,以确定患者是否适合进行远程问诊。根据患者情况,分诊护…

张小明 2025/12/30 16:07:17 网站建设