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

太原市做网站公司腾讯云服务器WordPress

太原市做网站公司,腾讯云服务器WordPress,深圳建设项目信息网,设计说明ai生成前言 一开始用的是循环单个文件下载,即从后台获取到文件url列表,循环对每个url单独进行下载,这样的问题是每调用一次下载,浏览器都会进行“另存为”的弹框,很麻烦!!! 关闭“下载前…

前言

一开始用的是循环单个文件下载,即从后台获取到文件url列表,循环对每个url单独进行下载,这样的问题是每调用一次下载,浏览器都会进行“另存为”的弹框,很麻烦!!!

关闭“下载前询问每个文件的保存位置”,又不是我想要的,这样就不提示保存位置,直接下载到浏览器的默认位置。而且按网上的方法,在程序代码里不让它弹“另存为”的弹框,也不起作用(具体方法放到了参考文章中)。

所以就产生了批量下载并打压缩包的想法。

解决方法

1、下载插件

npm install jszip
npm install file-saver

注: install完成后,会自动在package-lock.json和package.json中,添加上所需依赖。

2、在vue文件中使用

import JSZip from 'jszip'
import FileSaver from 'file-saver'

3、下载文件以及打包方法

    /**文件打包* arrImages:文件list:[{fileUrl:文件url,renameFileName:文件名}]* filename 压缩包名* */filesToRar(arrImages, filename) {let _this = this;let zip = new JSZip();let cache = {};let promises = [];_this.title = '正在加载压缩文件';const loading = this.$loading({lock: true,text: '正在加载压缩文件',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'});console.log("aaaa",arrImages);for (let item of arrImages) {console.log("item",item)// 下载文件, 并存成ArrayBuffer对象const promise = this.getImgArrayBuffer(item.fileStaticUrl).then(data => { // 获取文件名const file_name = encodeURIComponent(item.fileId) // 逐个添加文件zip.file(file_name, data, { binary: true })           cache[file_name] = data})promises.push(promise);}Promise.all(promises)// 生成二进制流.then(() => {zip.generateAsync({ type: "blob" }).then(content => {_this.title = '正在压缩';// 利用file-saver保存文件  自定义文件名FileSaver.saveAs(content, filename);             _this.title = '压缩完成';});loading.close();}).catch(res=>{_this.$message.error('文件压缩失败');loading.close();});},

   getImgArrayBuffer(url) {return new Promise((resolve, reject) => {//通过请求获取文件blob格式let xmlhttp = new XMLHttpRequest();xmlhttp.open("GET", url, true);xmlhttp.responseType = "blob";xmlhttp.onload = function () {if (this.status == 200) {resolve(this.response);} else {reject(this.status);}};xmlhttp.send();});},

4.获取文件url列表

    getFileUrls() {     this.$http({url: this.$http.adornUrl("/fileSystemApi/fileInfo/batch/download"),method: "post",data: {fileInfoList: this.dataListSelections,updateBy: this.$cookie.get('username')},}).then(({ data }) => {console.log("getFileUrls",data)this.fileInfoList = data.data.fileInfoList;console.log("sd",this.fileInfoList) this.filesToRar(this.fileInfoList, this.getTimestamp());});},

获取的fileInfoList即第3步中的arrImages,时间戳当做压缩包的文件名

5.在data中定义变量

data() {return {dataForm: {id: "",bucketId: "",fileId: "",fileType: "",syscode: "",fileCustno: "",createTime: "",},dataList: [],dataListSelections: [], // 选中数据dataIdListSelections: [], // 选中iddataListLoading: false,currPage: 1,pageSize: 10,totalCount: 0,url: "",fileInfoList: "",dialogVisible: false,};},

6.点击按钮

<template><div><!-- 省略其他... --><el-form:inline="true":model="dataForm"@keyup.enter.native="getDataList()"><el-form-item><el-button type="primary" @click="getFileUrls()">批量下载</el-button></el-form-item></el-form></div>
</template>

参考文章

https://blog.csdn.net/qq_47498423/article/details/131191964

http://www.taodudu.cc/news/show-5240586.html?action=onClick

https://code84.com/821872.html

http://www.taodudu.cc/news/show-4791614.html?action=onClick

循环单个文件下载的方式

https://blog.csdn.net/qq_41131745/article/details/128861548

https://blog.csdn.net/qq_42840904/article/details/131582093

https://ask.csdn.net/questions/7733361

https://blog.csdn.net/weixin_52268321/article/details/130465839

https://www.5axxw.com/questions/simple/qq469i

https://blog.csdn.net/weixin_43227235/article/details/130227361

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

相关文章:

  • 婚纱网站手机网站网站建设唐山
  • 网站制作简单模版网站设计命名规范
  • 信息类网站有哪些网站怎么做海外推广
  • 网站按条件显示广告图片专做h5的公司网站
  • 做网站在哪里接活lens wordpress
  • 查看邮箱注册过的网站南昌做企业网站
  • 搭建好网站如何使用影视公司排名
  • 珠海市网络营销协会的官方网站wordpress头像存储
  • 网站排名推广天津企业网站建设开发维护
  • 建设网站选题应遵循的规则做网站域名哪里来
  • 创建网站 优帮云创意聊城做网站的公司
  • 营销网站开发渠道有哪些汕头网站建设网站
  • 网站建设策划书色彩设计方案做网站的镜像是什么意思
  • 山东省职业能力建设处网站wordpress登录密码记录在哪里
  • 网站开发行业竞争网络广告营销策略分析
  • 网站怎么做微博链接中国美食网站模板免费下载
  • 网站反链是什么意思永康市网站建设制作
  • 网站建设属于IT吗网站建设风险管理
  • 龙岩做网站开发哪家厉害wordpress 启动流程
  • 网站迁移 域名设置宁德蕉城城乡建设网站
  • win8网站模版一站式 wordpress
  • 网站建设和优软件商店oppo官方下载
  • o2o网站运维建设方案做网站的上市公司有哪些
  • 网站备案增加域名解析做网站带后台多少钱
  • 设计网站logophp网站建设程序
  • 计算机专业学做网站吗wordpress 正文宽度
  • 绵阳的网站制作公司哪家好杭州seo招聘
  • 永久域名免费注册网站jsp网站开发怎么调试
  • 做网站公司做网站公司准备网站的工作
  • 简阳建设网站公司东莞网站建设团队全网天下