网站如何留住用户我在某网站网站做代理
2026/4/6 7:56:31 网站建设 项目流程
网站如何留住用户,我在某网站网站做代理,手机主页哪个网站好,制作ppt模板的软件一个大三狗的文件管理系统历险记 大家好#xff0c;我是福州某校软件工程专业的大三狗#xff0c;眼看毕业季来临#xff0c;我决定做个惊天地泣鬼神的文件管理系统当毕业设计#xff08;主要是为了找工作时有东西可以吹#xff09;。 我的异想天开我是福州某校软件工程专业的大三狗眼看毕业季来临我决定做个惊天地泣鬼神的文件管理系统当毕业设计主要是为了找工作时有东西可以吹。我的异想天开需求清单10G大文件上传我的笔记本硬盘才512G啊喂加密传输存储这得让我的课程设计看起来像国家安全局项目断点续传关了浏览器还能接着传重启电脑也不丢进度文件夹上传保留结构还要支持加密传输我开始怀疑自己是不是大三学生了浏览器兼容从IE8到国产浏览器一个都不能少7*24小时免费技术支持我自己都天天熬夜改bug哪来的24小时免费源代码毕竟预算食堂饭卡余额技术栈迷惑行为前端Vue3写着写着就变成jQuery了后端SpringBootSpring全家桶入门级选手数据库MySQL就会个CRUD存储阿里云OSS因为学生认证有优惠开发工具IDEA唯一用得顺手的编码翻车现场前端部分 (原生JS实现)// 大文件分片上传10G先试试10M吧classBigFileUploader{constructor(){this.chunkSize5*1024*1024;// 5MB一片this.retryCount3;this.queue[];this.pausedfalse;}// 选择文件后的处理handleFileSelect(e){constfilee.target.files[0];if(!file){alert(老板您倒是选个文件啊);return;}if(file.size10*1024*1024*1024){alert(10G您电脑内存够吗);return;}this.sliceAndUpload(file);}// 文件分片sliceAndUpload(file){consttotalChunksMath.ceil(file.size/this.chunkSize);letuploadedChunksthis.loadProgress(file.name)||0;for(letiuploadedChunks;itotalChunks;i){conststarti*this.chunkSize;constendMath.min(file.size,startthis.chunkSize);constchunkfile.slice(start,end);this.queue.push({chunk,chunkNumber:i,totalChunks,fileName:file.name,fileSize:file.size,retry:0});}this.processQueue();}// 上传队列处理processQueue(){if(this.paused||this.queue.length0)return;constitemthis.queue.shift();this.uploadChunk(item).then((){this.saveProgress(item.fileName,item.chunkNumber1);this.processQueue();}).catch(err{console.error(上传失败:,err);if(item.retrythis.retryCount){item.retry;this.queue.unshift(item);setTimeout(()this.processQueue(),1000);}else{alert(文件${item.fileName}第${item.chunkNumber1}片上传失败);}});}// 实际分片上传uploadChunk(item){returnnewPromise((resolve,reject){constformDatanewFormData();formData.append(file,item.chunk);formData.append(chunkNumber,item.chunkNumber);formData.append(totalChunks,item.totalChunks);formData.append(fileName,item.fileName);// 这里应该加上加密逻辑但我还没学会constxhrnewXMLHttpRequest();xhr.open(POST,/api/upload,true);xhr.onload(){if(xhr.status200){resolve(JSON.parse(xhr.responseText));}else{reject(newError(上传失败: xhr.statusText));}};xhr.onerror()reject(newError(网络错误));xhr.send(formData);});}// 保存进度到localStorage不够持久saveProgress(fileName,uploadedChunks){constprogressJSON.parse(localStorage.getItem(uploadProgress)||{});progress[fileName]uploadedChunks;localStorage.setItem(uploadProgress,JSON.stringify(progress));}// 加载进度loadProgress(fileName){constprogressJSON.parse(localStorage.getItem(uploadProgress)||{});returnprogress[fileName]||0;}}后端部分 (SpringBoot)RestControllerRequestMapping(/api)publicclassFileUploadController{Value(${upload.dir})privateStringuploadDir;PostMapping(/upload)publicResponseEntityuploadChunk(RequestParam(file)MultipartFilefile,RequestParam(chunkNumber)intchunkNumber,RequestParam(totalChunks)inttotalChunks,RequestParam(fileName)StringfileName){try{// 创建临时目录StringtempDiruploadDirFile.separatortemp_fileName;FiledirnewFile(tempDir);if(!dir.exists()){dir.mkdirs();}// 保存分片文件StringchunkNamechunkNumber.part;FilechunkFilenewFile(dir,chunkName);file.transferTo(chunkFile);// 如果是最后一片合并文件if(chunkNumbertotalChunks-1){mergeFiles(fileName,tempDir,totalChunks);}returnResponseEntity.ok().body(Map.of(success,true,message,分片上传成功,chunkNumber,chunkNumber));}catch(Exceptione){returnResponseEntity.status(500).body(Map.of(success,false,message,分片上传失败: e.getMessage()));}}privatevoidmergeFiles(StringfileName,StringtempDir,inttotalChunks)throwsIOException{FileoutputFilenewFile(uploadDir,fileName);try(FileOutputStreamfosnewFileOutputStream(outputFile,true);BufferedOutputStreambosnewBufferedOutputStream(fos)){for(inti0;itotalChunks;i){FilechunkFilenewFile(tempDir,i.part);try(FileInputStreamfisnewFileInputStream(chunkFile);BufferedInputStreambisnewBufferedInputStream(fis)){byte[]buffernewbyte[1024];intlen;while((lenbis.read(buffer))0){bos.write(buffer,0,len);}}chunkFile.delete();// 删除已合并的分片}}// 删除临时目录newFile(tempDir).delete();}}遇到的坑爹问题IE8兼容2023年了还要兼容IE8我选择放弃治疗10G文件上传我的虚拟机内存才分配了4G…断点续传持久化localStorage根本不够用啊文件夹结构保持前端获取不到完整路径这题超纲了加密功能老师教过MD5算吗心虚我的卑微请求有没有大神能教我实现真正的断点续传持久化IndexedDB帮我搞定文件夹结构上传教我简单的文件加密别太复杂我怕看不懂给我的简历加点闪光点最好能直接帮我写欢迎加QQ群374992201交流新人加群送红包虽然可能就1块钱毕业答辩生存指南演示时只传小文件避免当场卡死重点讲设计思路代码能跑就行准备几个专业术语“分布式存储”、“零信任安全模型”…遇到不会的问题就说这个功能在下个版本规划中找工作求带有师兄师姐在招人的吗我要求不高能养活自己有电脑用最好不用加班做梦附上我的专业技能会Google、会复制粘贴、会重启电脑SQL示例创建数据库配置数据库连接自动下载maven依赖启动项目启动成功访问及测试默认页面接口定义在浏览器中访问数据表中的数据效果预览文件上传文件刷新续传支持离线保存文件进度在关闭浏览器刷新浏览器后进行不丢失仍然能够继续上传文件夹上传支持上传文件夹并保留层级结构同样支持进度信息离线保存刷新页面关闭页面重启系统不丢失上传进度。示例下载下载完整示例

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询