前端文件上传 、下载

news/2024/10/17 20:22:28/

 一、文件上传

import { importData } from '@/api.js';async importFn() {// 文件数据let file = null; // 文件使用form-data格式,参数使用json格式let formData = new FormData();formData.append("excel", file);formData.append("excelQuery", new Blob([JSON.stringify({name: '文件名'})], { type: 'application/json' }));// 调用接口需要定义headerslet res = await importData(formData, {headers: {'Content-Type': 'multipart/form-data'}});
}

传到接口的参数使用json格式,不然接口可能报415状态码错误

二、文件下载

import { exportData } from '@/api.js';async exportFn() {try {let res = await exportData({keyword: ''}, {headers: {'responseType': 'blob','Content-Type': 'application/json;application/octet-stream','dataType': 'json'}        });let reader = new FileReader();reader.onload = (e) => {let content = reader.result;// 读取内容判断是返回的json 还是 文件数据if (content && content.indexOf('"code":') > -1) {let data = JSON.parse(content);console.error(data.msg);} else {this.exportZip(res, `${this.getTimeStr()}.zip`);}};reader.readAsText(res);} catch (err) {console.error(err);} finally {}
},
// 下载zip
exportZip(data, name) {let blob = new Blob([data], { type: 'application/zip' });let downloadElement = document.createElement('a');let href = window.URL.createObjectURL(blob); //创建下载的链接downloadElement.href = href;downloadElement.download = name; //定义文件名document.body.appendChild(downloadElement);downloadElement.click(); //点击下载document.body.removeChild(downloadElement); //下载完成移除元素window.URL.revokeObjectURL(href); //释放掉blob对象
},
// 获取时间作为文件名
getTimeStr() {const now = new Date();const year = now.getFullYear();const month = ('0' + (now.getMonth() + 1)).slice(-2);const day = ('0' + now.getDate()).slice(-2);const hours = ('0' + now.getHours()).slice(-2);const minutes = ('0' + now.getMinutes()).slice(-2);const seconds = ('0' + now.getSeconds()).slice(-2);const formattedTime = year + month + day + hours + minutes + seconds;return formattedTime;
},


http://www.ppmy.cn/news/998236.html

相关文章

CGAL-2D和3D线性几何内核-点和向量-内核扩展

文章目录 1.介绍1.1.鲁棒性 2.内核表示2.1.通过参数化实现泛型2.2.笛卡尔核2.3.同质核2.4.命名约定2.5.内核作为trait类2.6.选择内核和预定义内核 3.几何内核3.1.点与向量3.2.内核对象3.3.方位和相对位置 4.谓语和结构4.1.谓词4.2.结构4.3.交集和变量返回类型4.4.例子4.5.建构性…

《Java-SE-第二十三章》之单例模式

文章目录 单例模式概述饿汉模式懒汉模式单线程版懒汉单例多线程版枚举实现单例 单例模式概述 单例模式是设计模式中的一种,其作用能保证某个类在程序中只存在唯一一份实例,而不会创建多份实例。单例模式具体的实现方式, 分成 “饿汉” 和 “懒汉” 两种.。饿汉模式中的饿不并不…

PHP操作solr

1,php下载solr(索尔)扩展,phpinfo需要支持solr扩展. 2,安装 Solr。Solr 要求您的系统上有 Java。java –version,Java 的版本大于 1.6 3,下载solr,并安装 D:\solr。 开启solr命令:solr start 关闭solr命令:…

怎么进行电磁兼容的测试?

【导读】电磁骚扰源任何形式的自然或电能装置所发射的电磁能量,能使共享同一环境的人或其它生物受到伤害,或使其它设备、分系统或系统发生电磁危害,导致性能降低或失效,即称为电磁骚扰源,下面针对电磁兼容测试的条件与…

【Autoresizing案例2 Objective-C语言】

一、Autoresizing案例2 1.那么,接下来,咱们看第二个案例, 刚才我们设置了Autoresizing,的外面四根线,用来设置这个子控件距离父控件的距离,是固定吧 然后呢,我们给大家演示一下什么,演示一下里面这两根线, 里面有一根横的一根线,和一根竖的一根线, 这两根线是什么作…

年龄大了转嵌入式有机会吗?

首先,说下结论:年龄并不是限制转行嵌入式软件开发的因素,只要具备一定的编程和电子基础知识,认真学习和实践,是可以成为优秀的嵌入式软件开发工程师的。 1、转行建议 在转行的初期阶段,需要耐心学习嵌入式…

selenium2(webdriver API)—软件测试

文章目录 1.定位元素的方式1.1id1.2name1.3class name1.4link text1.5partial link name1.6tag name1.7xpath1.8css selector 2.操作测试对象2.1send_keys()2.2click()2.3submit()2.4clear()2.5text 3.等待3.1sleep()3.2implicitly_wait() 4.信息打印4.1打印title4.2打印URL 5.…

什么是熵?

熵(Entropy)是一个重要的概念,最初出现在热力学领域,用于描述系统的混乱程度或不确定性。熵也被广泛应用于信息理论、统计学和计算机科学等领域。通常来讲,熵,是对混乱程度、不确定程度的度量。熵越大&…