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

前端文件下载方法(包含get和post)

export const downloadFileWithIframe = (url, name) => {const iframe = document.createElement('iframe');iframe.style.display = 'none'; // 防止影响页面iframe.style.height = 0; // 防止影响页面iframe.name = name;iframe.src = url;document.body.appendChild(iframe); // 这一行必须,iframe挂在到dom树上才会发请求// 5分钟之后删除(onload方法对于下载链接不起作用,就先抠脚一下吧)setTimeout(() => {iframe.remove();}, 5 * 60 * 1000);// console.log(url)
//   window.open(url)
};export const downloadFileWithWindow = (url, name) => {const otherWindow = window.open(url, name);otherWindow.opener = null;
};/*** @param { object } data 参数* @param { string } url 路径* @description 处理下载方法*/
export function handleWindowDownload(url, data, name) {if (!url) return;let paramStr = '';if (data && typeof data === 'object') {const keys = Object.keys(data);const arr = [];if (keys.length > 0) {keys.forEach(item => {arr.push(`${item}=${data[item]}`);});}paramStr = arr.join('&');}url += paramStr ? `?${paramStr}` : '';downloadFileWithWindow(`${url}`, name);
}// url 为请求地址,name 为form表单的target 的name 可以随意写 data1为需要请求的数据
export function openPostWindow(url, name, data1) {// 创建form表单,以下数form表单的各种参数var tempForm = document.createElement('form');tempForm.id = 'tempForm1';tempForm.method = 'post';tempForm.action = url;tempForm.target = name;// 创建标签 <input></input> 标签 然后设定属性,最后追加为 form标签的子标签var hideInput1 = document.createElement('input');hideInput1.type = 'hidden';hideInput1.name = 'data';hideInput1.value = data1;tempForm.appendChild(hideInput1);if (document.all) {// IEtempForm.attachEvent('onsubmit', function() {});} else {// firefoxtempForm.addEventListener('submit', function() {}, false);}document.body.appendChild(tempForm);if (document.all) {tempForm.fireEvent('onsubmit');} else {tempForm.dispatchEvent(new Event('submit'));}// 提交POST请求tempForm.submit();// 删除整个form标签document.body.removeChild(tempForm);
}
http://www.lryc.cn/news/277883.html

相关文章:

  • 高性能、可扩展、支持二次开发的企业电子招标采购系统源码
  • 2645. 构造有效字符串的最少插入数
  • C#,快速排序算法(Quick Sort)的非递归实现与数据可视化
  • 【操作系统xv6】学习记录2 -RISC-V Architecture
  • C++力扣题目111--二叉树的最小深度
  • 【图像拼接】源码精读:Adaptive As-Natural-As-Possible Image Stitching(AANAP/ANAP)
  • 解决docker run报错:Error response from daemon: No command specified.
  • 算法第十二天-最大整除子集
  • 简单易懂的PyTorch 损失函数:优化机器学习模型的关键
  • Kubernetes/k8s的存储卷/数据卷
  • 【漏洞复现】锐捷RG-UAC统一上网行为管理系统信息泄露漏洞
  • Android - 串口通讯(SerialPort)
  • 如何使用設置靜態住宅IP
  • 在学习爬虫前的准备
  • windows下安装oracle-win-64-11g超详细图文步骤
  • Go模板后端渲染时vue单页面冲突处理
  • 笔记本摄像头模拟监控推送RTSP流
  • 鸿蒙开发已解决-ArkTS编译时遇到arkts-no-obj-literals-as-types错误
  • 实现目标检测中的数据格式自由(labelme json、voc、coco、yolo格式的相互转换)
  • 一文读懂JVS逻辑引擎如何调用规则引擎:含详细步骤与场景示例
  • 苹果应用上架是否需要软件著作权?
  • LDD学习笔记 -- Linux字符设备驱动
  • 杰理AC63串口收发实例
  • 麦芯(MachCore)开发教程1 --- 设备软件中间件
  • reset命令
  • Linux内核--进程管理(十二)LinuxIO基础知识与概念
  • gem5学习(11):将缓存添加到配置脚本中——Adding cache to the configuration script
  • 上海雏鸟科技无人机灯光秀跨年表演点亮三国五地夜空
  • 学生备考护眼台灯怎么样选择?2024五款好用台灯安利
  • Java学习,一文掌握Java之SpringBoot框架学习文集(6)