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

营销型企业网站建站asp网站开发模板

营销型企业网站建站,asp网站开发模板,上海网站建设服务多少钱,东明菏泽网站建设公司要求实现的功能,大概思路是将上传的文件通过jsZip压缩后,进行切片,留一下总切片,当前片,并把这些数据给后端,至于前端的校验,是由Md5完成的,验证文件唯一性,这样下次…

公司要求实现的功能,大概思路是将上传的文件通过jsZip压缩后,进行切片,留一下总切片,当前片,并把这些数据给后端,至于前端的校验,是由Md5完成的,验证文件唯一性,这样下次上传该文件的时候就会略过并更新已经上传过的切片,开始下一片的续传。

首先是创建一个上传按钮,绑定上传事件,我这边是需要放在表格里,并且需要是base64格式所以有个转换,具体看个人需求:

  importModel() {this.fileIndex = 0const input = document.createElement('input');input.type = 'file';input.onchange = (event) => {let selectedFiles = this.fileFilter(event.target.files);if (selectedFiles.length > 0) {const zip = new JSZip();for (let i = 0; i < selectedFiles.length; i++) {zip.file(selectedFiles[i].name, selectedFiles[i], { date: new Date(2023, 0, 1) });}zip.generateAsync({ type: "base64" }).then((content) => {zip.generateAsync({ type: "uint8array" }).then(content1 => {this.fileData = [{ file: content, fileMd5: md5(content1), zipInfo: {}, type: '文件名 '+ '.zip', std: '50%', address: '删除', progressValue: 0 }];})});this.compress = false;}else {this.$message.error('请上传有效文件');}};input.click();},

接下来是上传的方法 (

 uploadFiles() {if (this.fileIndex < this.fileData.length)
//下面这个接口是跟后端约定好的需要的参数,个人需求可以不用走,这边拿到返回的id再带给下一个方法,实际接口({size://压缩后返回的大小,fileName: 实际上传的文件名//}).then(response => {this.indexedDBHelper.get(this.fileData[this.fileIndex].fileMd5).then((d) => {if (d)this.fileData[this.fileIndex].zipInfo = d.dataelsethis.fileData[this.fileIndex].zipInfo = {id: 后端带回来的id,看个人需求,fileSize:this.fileData[this.fileIndex].file.length,chunkSize: 4 * 1024 * 1024,chunkCount: Math.ceil(文件大小 / (4 * 1024 * 1024)),currentChunk: 0, //初始上传切片}this.uploadNextChunk()})});elseconsole.log('全部上传完成')},
 ///上传文件切片uploadNextChunk() {let { currentChunk, chunkCount } = this.fileData[this.fileIndex].zipInfoif ((currentChunk) < chunkCount) {this.uploadChunk().then(response => {this.showConnectingMessage = false;if (response?.data) {this.$set(this.fileData[this.fileIndex], 'progressValue', Math.round(((currentChunk + 1) / chunkCount) * 100));//更新进度条this.fileData[this.fileIndex].zipInfo.currentChunk += 1this.uploadNextChunk();this.indexedDBHelper.set({ id: this.fileData[this.fileIndex].fileMd5, data: this.fileData[this.fileIndex].zipInfo })//保存md5及信息到indexDB}});} else {this.$set(this.fileData[this.fileIndex], 'progressValue', 100);this.indexedDBHelper.delete(this.fileData[this.fileIndex].fileMd5)//上传完成,清空md5this.fileIndex += 1this.uploadFiles()}},///调用后端接口uploadChunk() {let start = (this.fileData[this.fileIndex].zipInfo.currentChunk) * this.fileData[this.fileIndex].zipInfo.chunkSize;let end = Math.min(this.fileData[this.fileIndex].zipInfo.fileSize, start + this.fileData[this.fileIndex].zipInfo.chunkSize);let chunkFile = this.fileData[this.fileIndex].file.slice(start, end);const uploadData = {id: this.fileData[this.fileIndex].zipInfo.id,fileBase64: 'Base64,' + chunkFile,fileName: this.fileData[this.fileIndex].zipInfo.fileName,size: chunkFile.length,chunks: this.fileData[this.fileIndex].zipInfo.chunkCount,chunk: this.fileData[this.fileIndex].zipInfo.currentChunk,md5: this.fileData[this.fileIndex].flieMd5,};return 后端接口(uploadData); //将数据发送给后端接口},

最后是删除方法,绑定在按钮上就可以

deleteItem() {MessageBox.confirm('确定删除该文件吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {后端接口(this.fileData[this.fileIndex].zipInfo.id)//将需要删除的id发送给后端.then(response => {const index = this.fileData.findIndex(item => item.id === this.fileData[this.fileIndex].zipInfo.id);if (index !== -1) {this.fileData.splice(index, 1);}}).catch(error => {console.error('删除文件时出错:', error);});}).catch(() => {});},

虽然这个功能可以实现续传,整个流程也通了,但是有个问题就是无法承担太大的文件,如果需求是中小文件的话是可以用的,超大文件的话会崩。 

http://www.yayakq.cn/news/765482/

相关文章:

  • 网站备案最新备案号乐山网站营销推广哪家公司好
  • 网站设计策划书模板基本网络架构图
  • h5响应式网站源码下载全球跨境电商平台排名
  • 龙港做网页网站制作博罗做网站技术
  • 各位大哥给个网站我为本公司想建个网站
  • 网站建设h5贵阳做网站软件
  • python做电商网站赤峰城乡建设局网站
  • 4s店建设网站的目的丹徒建设网官方网站
  • 哈尔滨网站设计公司哪家更好怎么制作网站模板
  • 织梦做单页面网站太原招聘网站开发
  • 企业网站 下载设计网站最重要的是要有良好的
  • 酒店类网站建设开发书怎么在网站底部添加备案号
  • 各大电商购物网站转化率报表五莲网站建设维护推广
  • 门户网站有哪几个卖高仿名牌手表网站
  • 学校网站怎么做优化制作一个有用户网站
  • 做帮助手册的网站wordpress搜索页制作
  • 河间市做网站哈尔滨餐饮加盟网站建设
  • 自己能做网站吗做电力招聘的有哪些网站
  • 汕头市建设局造价信息网站南京cms建站
  • 什么源码做有趣的网站网上提供免费主页空间的网站
  • 网站开发背景建网站策划方案
  • 网站运营核心大型做网站
  • 阿里巴巴网站建设教程鲜花网站建设主要内容
  • 云南建设网官方网站wordpress 导航 主题
  • 建网站图片怎么找福州百度关键词优化
  • 怎么建设网站临汾网站建设方案格式
  • wap网站制作模板购物网站主页模版
  • 一学一做教育视频网站有哪些安全工程师证报考条件是什么
  • 有没有专门做家乡图片的网站网站建设完成报告
  • 遵义住建局查询网站哪有专做飞织鞋面的网站