泉州专业网站制作公司ipv6在家做网站

张小明 2026/1/11 7:23:39
泉州专业网站制作公司,ipv6在家做网站,百度收录查询api,如何让网站 被百度k开发者日记#xff1a;2023年11月20日 周一 晴 项目名称#xff1a;跨平台大文件传输系统#xff08;WebUploaderVue3JSP腾讯云COS#xff09; 项目背景与核心挑战 近期承接了一个高难度外包项目#xff0c;客户要求实现20G级文件/文件夹上传下载#xff0c;需满足以下硬…开发者日记2023年11月20日 周一 晴项目名称跨平台大文件传输系统WebUploaderVue3JSP腾讯云COS项目背景与核心挑战近期承接了一个高难度外包项目客户要求实现20G级文件/文件夹上传下载需满足以下硬性条件断点续传即使重启电脑进度不能丢失需持久化存储文件夹层级保留上传后需100%还原原始目录结构全浏览器兼容从IE8到现代浏览器Edge/Chrome/Firefox/Safari/Opera技术栈Vue3前端 JSP后端 MySQL数据库 腾讯云COS存储现存问题网上开源方案仅支持单文件上传无完整文件夹上传实现IE8的Flash上传存在安全策略限制腾讯云COS的分片上传API与百度OBS有差异需重新适配20G文件传输需解决内存溢出和超时问题技术方案设计前端架构Vue3 WebUploadergraph TD A[用户选择文件/文件夹] -- B{浏览器类型} B --|Chrome/Firefox| C[使用webkitdirectory API] B --|IE8| D[调用ActiveX控件递归读取] C D -- E[生成文件树结构] E -- F[计算文件MD5spark-md5] F -- G[分片上传WebUploader] G -- H[本地存储进度localStorage]后端架构JSP Servlet是否是否接收分片是否首片创建数据库任务记录更新分片进度存储分片到临时目录是否全部分片完成合并文件并上传COS返回继续上传指令关键数据库设计CREATETABLEupload_tasks(task_idVARCHAR(36)PRIMARYKEY,-- UUIDfile_md5VARCHAR(64)NOTNULL,relative_pathVARCHAR(512),-- 保留文件夹层级如 /docs/2023/total_chunksINT,uploaded_chunksINT,statusENUM(pending,uploading,completed,failed),cos_keyVARCHAR(1024),-- COS存储路径create_timeDATETIMEDEFAULTNOW());核心代码实现前端文件夹上传与断点续传Vue3// src/components/FolderUploader.vueimport{ref,onMounted}fromvue;importWebUploaderfromwebuploader;importSparkMD5fromspark-md5;exportdefault{setup(){consttaskListref([]);constuploaderref(null);// 初始化上传器兼容IE8constinitUploader(){constisIE8!!window.ActiveXObject||ActiveXObjectinwindow;uploader.valueWebUploader.create({swf:/static/Uploader.swf,// IE8回退server:/api/upload-chunk,chunked:true,chunkSize:isIE8?4*1024*1024:10*1024*1024,threads:isIE8?1:3,// IE8限制并发formData:{taskId:localStorage.getItem(currentTaskId)||}});// 恢复未完成任务restoreTasks();};// 递归解析文件夹跨浏览器consthandleFolderSelect(e){constfilese.target.files;if(!files.length)return;constparseFolder(entries,parentPath){for(letentryofentries){if(entry.isFile){constrelativePathparentPath?${parentPath}/${entry.name}:entry.name;addUploadTask(entry,relativePath);}elseif(entry.isDirectory){constdirReaderentry.createReader();dirReader.readEntries((newEntries){parseFolder(newEntries,parentPath?${parentPath}/${entry.name}:entry.name);});}}};// Chrome/Firefox使用webkitGetAsEntryif(files[0].webkitGetAsEntry){constentryfiles[0].webkitGetAsEntry();if(entry.isDirectory){constdirReaderentry.createReader();dirReader.readEntries(parseFolder);}else{addUploadTask(files[0],files[0].name);}}// IE8使用ActiveX代码省略};// 添加上传任务constaddUploadTask(file,relativePath){consttask{file,relativePath,md5:,chunkCount:Math.ceil(file.size/uploader.value.options.chunkSize)};// 计算文件MD5用于断点校验calculateFileMD5(file,(md5){task.md5md5;taskList.value.push(task);saveTaskToLocal(task);});};onMounted((){initUploader();document.getElementById(folderInput).addEventListener(change,handleFolderSelect);});return{taskList,uploader};}};后端JSP分片处理与COS上传// /api/upload-chunk.jsp% pageimportcom.qcloud.cos.COSClient, com.qcloud.cos.model.*%% pageimportjava.util.UUID, java.io.*%%// 1. 获取参数StringtaskIdrequest.getParameter(taskId);intchunkIndexInteger.parseInt(request.getParameter(chunkIndex));inttotalChunksInteger.parseInt(request.getParameter(totalChunks));StringfileMd5request.getParameter(fileMd5);StringrelativePathrequest.getParameter(relativePath);// 2. 保存分片StringtempDirapplication.getRealPath(/)/temp/taskId;FiledirnewFile(tempDir);if(!dir.exists())dir.mkdirs();PartfilePartrequest.getPart(file);StringchunkPathtempDir/chunk_chunkIndex;filePart.write(chunkPath);// 3. 更新数据库try(ConnectionconnDriverManager.getConnection(jdbc:mysql://localhost:3306/file_transfer,user,pass);PreparedStatementstmtconn.prepareStatement(UPDATE upload_tasks SET uploaded_chunks? WHERE task_id?)){stmt.setInt(1,chunkIndex1);stmt.setString(2,taskId);stmt.executeUpdate();}// 4. 检查是否全部上传完成booleanisCompletefalse;try(ConnectionconnDriverManager.getConnection(jdbc:mysql://localhost:3306/file_transfer,user,pass);ResultSetrsconn.createStatement().executeQuery(SELECT uploaded_chunks, total_chunks FROM upload_tasks WHERE task_idtaskId)){if(rs.next()){isCompleters.getInt(uploaded_chunks)rs.getInt(total_chunks);}}// 5. 合并并上传COSif(isComplete){StringfinalPathtempDir/final_fileMd5;mergeChunks(tempDir,finalPath,totalChunks);// 合并逻辑省略// 腾讯云COS上传COSClientcosClientnewCOSClient(secretId,secretKey,region);StringcosKeyuploads/taskId/relativePath;cosClient.putObject(newPutObjectRequest(your-bucket,cosKey,newFile(finalPath)));// 清理临时文件deleteDirectory(newFile(tempDir));}out.print({\status\:\success\});%关键问题解决IE8文件夹上传使用配合ActiveX的FileSystemObject递归读取需用户手动设置IE安全级别为低客户要求已文档说明腾讯云COS分片校验上传前通过COSObject的doesObjectExist方法检查分片是否已存在20G文件内存优化采用流式处理避免一次性加载整个文件到内存JSP设置request.setAttribute(maxPostSize, 21474836480)20GB求助与社区支持目前IE8的ActiveX方案在Windows 10上存在权限问题已在QQ群374992201发布详细错误日志。完整代码已上传至Gitee待脱敏急需大神协助解决ActiveX控件在Win10的兼容性问题大文件合并时的内存溢出优化跨浏览器进度条同步显示明日计划编写自动重试机制和COS上传失败后的回滚逻辑确保20G文件传输的稳定性。日记结束附技术栈对比表模块原方案当前方案优化点前端框架jQueryVue3 Composition API响应式数据管理上传组件WebUploader基础版定制版支持文件夹断点递归解析文件夹结构后端语言PHPJSP利用Servlet处理大文件流对象存储百度OBS腾讯云COS适配不同的分片API规范如需完整项目或调试协助请联系QQ群或留言获取测试账号导入项目导入到Eclipse点南查看教程导入到IDEA点击查看教程springboot统一配置点击查看教程工程NOSQLNOSQL示例不需要任何配置可以直接访问测试创建数据表选择对应的数据表脚本这里以SQL为例修改数据库连接信息访问页面进行测试文件存储路径up6/upload/年/月/日/guid/filename效果预览文件上传文件刷新续传支持离线保存文件进度在关闭浏览器刷新浏览器后进行不丢失仍然能够继续上传文件夹上传支持上传文件夹并保留层级结构同样支持进度信息离线保存刷新页面关闭页面重启系统不丢失上传进度。下载示例点击下载完整示例
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建设银行内部审批哪些网站代理公司注册地址

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万字以上 同行可拿货,招校园代理 基于Thinkphp和Laravel的某学院勤工俭学岗位兼职平台设计与实现…

张小明 2026/1/9 21:18:35 网站建设

房地产微网站网站备案邮寄资料

RuoYi架构升级实战:从贫血模型到DDD领域驱动设计的华丽转身 【免费下载链接】RuoYi :tada: (RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用 项目地址: https:/…

张小明 2026/1/11 4:40:34 网站建设

宿迁网站建设报价青海省教育厅门户网站官网

123云盘免费VIP终极教程:一键解锁会员特权完整指南 【免费下载链接】123pan_unlock 基于油猴的123云盘解锁脚本,支持解锁123云盘下载功能 项目地址: https://gitcode.com/gh_mirrors/12/123pan_unlock 还在为123云盘下载速度慢、广告多而烦恼吗&a…

张小明 2026/1/11 0:23:45 网站建设

淘宝客可道cms网站建设广西网络推广

CLIP 是由 OpenAI 发布的一种文本-图像模型,是融合文本与图像最具影响力的方案。引言在许多最新的深度学习模型中,结合图像与文字的能力是一项强大的功能。这些模型能够分析图像的像素以理解其内容,同时解析用户提示中的文字以把握用户的需求…

张小明 2026/1/11 2:34:27 网站建设

自己创建公司网站国内平台有哪些

Tiled六边形地图坐标转换实战:从困惑到精通的游戏开发指南 【免费下载链接】tiled 项目地址: https://gitcode.com/gh_mirrors/til/tiled 还在为Tiled六边形地图的坐标系统感到头疼吗?作为一名游戏开发新手,你是否经常遇到这样的场景…

张小明 2026/1/10 9:26:09 网站建设

北京建网站价格优帮云网站建设公司好哪家好

想要在任何设备上都能畅玩PC游戏?Sunshine就是你的最佳选择!这款开源的游戏串流服务器能让你在客厅大屏、卧室电视甚至移动设备上享受低延迟的高质量游戏体验。今天我们就来聊聊如何快速配置Sunshine,打造属于你的完美游戏串流系统。 【免费下…

张小明 2026/1/10 16:11:21 网站建设