当前位置: 首页 > news >正文

高清图片素材网官网优化

高清图片素材网,官网优化,网页设计代码大全div,wordpress数据库改密码在分块上传内容结束以后的事件监听#xff0c;我们会实现 unlinkSync 删除临时文件操作#xff0c;那么试想一下#xff0c;在这个事件监听中#xff0c;我们是否可以通过totalChunks以及currentChunk获取当前上传的进度情况呢#xff1f; 后端 upload上传接口#xff…在分块上传内容结束以后的事件监听我们会实现 unlinkSync 删除临时文件操作那么试想一下在这个事件监听中我们是否可以通过totalChunks以及currentChunk获取当前上传的进度情况呢 后端 upload上传接口 app.post(/upload,upload.single(file),(req,res) {const file req.file; const filename req.body.filename;const totalChunks parseInt(req.body.totalChunks); // 获取总块数const currentChunk parseInt(req.body.currentChunk); // 获取当前块数const chunkPath path.join(uploads/,${filename}-chunk-${currentChunk}); const chunkStream fs.createReadStream(file.path);const writeStream fs.createWriteStream(chunkPath);chunkStream.pipe(writeStream);// 对分块上传内容结束以后的事件监听chunkStream.on(end, () {fs.unlinkSync(file.path); //读取文件块的流结束后删除临时文件// 打印 progress 我们就可以获取到文件进度情况const progress ((currentChunk 1) / totalChunks) * 100; // 计算上传进度情况res.json({ progress }); // 服务器端向客户端进行返回操作}); }); 前端 html input typefile idfileInput progress value0 max100 idprogress/progress //设置一个进度条 button onclickupload()上传文件/button script async function upload() {const fileInput document.getElementById(fileInput); //获取input框const file fileInput.files[0]; // 对input的文件进行获取const chunkSize 1*1024*1024; //初始化分块的尺寸 每块分块文件大小为1MB1兆const totalChunks Math.ceil(file.size / chunkSize); //通过文件尺寸计算出所有的块数let currentChunk 0; //设置块的初始值// 通过while循环处理while (currentChunk totalChunks){const start currentChunk * chunkSize; // 计算当前块的起始位置const end Math.min(start chunkSize, file.size); // 计算当前块的结束 Math.min返回一组数值中的最小值const chunk file.slice(start, end); // 切割文件获取当前块const formData new FormData();formData.append(file, chunk); // 添加当前块到 FormData 对象formData.append(filename, file.name); // 添加文件名到 FormData 对象formData.append(totalChunks, totalChunks); // 添加总块数到 FormData 对象formData.append(currentChunk, currentChunk); // 添加当前块数到 FormData 对象try{// 获取返回的内容进度const res await axios.post(http://localhost:3000/upload,formData,{headers:{Content-Type:multipart/form-data,},}); //发送当前块的上传请求const { progress } res.data; // 获取当前块的上传进度document.getElementById(progress).value progress; // 更新进度}catch(error){console.error(error);return;}currentChunk; //增加当前块数继续下一块的上传实现循环操作}// 当所有分块文件发送完毕发起合并请求操作try{const postData { filename:file.name,totalChunks:totalChunks }; //构造合并请求的数据await http.post(http://localhost:3000/merge, postData,{headers: {Content-Type: application/json}}); //发送合并请求}catch(error){console.error(error);} } 再次发送文件进度条已经正常显示
http://www.pierceye.com/news/529068/

相关文章:

  • 做淘宝券推广的网站有哪些石碣镇做网站
  • 贵阳网站制作免费桂林市工程建设项目招标网站
  • 南昌专业网站排名推广做网站编辑我能力得到提升
  • 网站建设行业凡科建站登录入口官方正版
  • 一般网站开发的硬件要求视觉冲击力的网站设计
  • 昆明做网站建设的公司哪家好广西建设培训网
  • 国字类型网站有哪些内容百度seo分析工具
  • 免费浪漫网页制作网站html的常用标签
  • 上行10m做网站服务仿简书wordpress博客主题
  • 网站建设中网页代码做网站的是不是程序员
  • 做网站需要的技术做网站优化好的网络公司
  • 为什么要更新网站登录四川省住房和城乡建设厅官网
  • 注册网站不用手机短信验证的网站营销型网站的建设起步
  • 国内高清图片素材网站推荐元素领域wordpress
  • 沙朗做网站公司网页制作免费网站制作
  • 营销型网站重要特点是网站播放视频速度优化
  • 建设厅报名网站做PHP网站前端网站进不去
  • 网站开发后台 amp建网页还是网站
  • 云南个旧建设局网站宁波关键词优化品牌
  • 网站建设方案应急处置wordpress我爱水煮鱼
  • 网页设计模板html代码班级主题广东seo推广
  • 西安 网站托管西安网站关键词排名
  • 做网站用discuz还是wp汉狮做网站公司郑州
  • 网站运营服务中心建设方案网页免费制作网站
  • 做网站销售有前景怎么注销网站
  • 福州建设网站设计电子商务网站平台有哪些
  • 扁平化色块风格的网站企业网站建设客户需求调查问卷
  • 网站建设产品服务痘痘如何去除效果好
  • 展会电子商务网站如何建设单页网站如何做
  • 济南软件外包邢台seo服务公司