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

这篇具有很好参考价值的文章主要介绍了前端文件下载方法(包含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) {
    // IE
    tempForm.attachEvent('onsubmit', function() {});
  } else {
    // firefox
    tempForm.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);
}

文章来源地址https://www.toymoban.com/news/detail-791667.html

到了这里,关于前端文件下载方法(包含get和post)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端 JS 经典:文件流下载

    重点:调用接口时,一定要配置 responseType 的值为 blob,不然获取的文件流,不会转义成 blob 类型的文件。 1. 接口返回文件流 2. 文件流下载:简单版 3. 文件流下载:豪华版

    2024年02月03日
    浏览(44)
  • 前端通过STS方式直传至阿里云OSS(包含文件上传、下载和自动刷新stsToken)

    最近项目业务需要实现一个资源管理的功能,就简单学习了一下前端怎么使用阿里云OSS。 原本这些事情都是后端实现的,但这样子有许多缺点,比如文件上传需要走两次,先上传到后端,再由后端上传至阿里云OSS,既占用带宽也浪费时间;此外,前端还不能获取到真正的上传

    2024年01月19日
    浏览(68)
  • 前端js下载zip文件异常问题解决

    目录 一,本文解决问题如下 二,原下载代码 1,ajax get 下载文件 2,下载异常图: 三,成功下载的 1, JQuery 实现文件下载xhr 2,图例 引言: 本人使用的ajax 下载,由于下载CSV,文本之类的没有问题,下载zip是出现各种问题。发现是设置responseType:\\\"blob\\\"没生效,项目中又没有

    2024年02月09日
    浏览(38)
  • 前端用原生js编辑文件内容→创建生成文件(格式可以自定义)→下载文件

    会自动创建一个html文件    前端实现下载文件的两种方法downloadFile_文件下载downloadfile_你挚爱的强哥的博客-CSDN博客 实现效果如上图。_文件下载downloadfile https://blog.csdn.net/qq_37860634/article/details/131022008 通过整合以上两个方法,合并为一个方法: 特性: 实现自主编写文件生成并

    2024年02月12日
    浏览(60)
  • vue如何通过$http的post方法请求下载二进制的Excel文件

    使用此function 使用此function, test.vue instanceName: \\\"exportExcel\\\",导出excel文件 instanceName: \\\"downloadLog\\\",下载.log后缀的txt文件 封装接口 代码中使用:

    2024年01月18日
    浏览(55)
  • StreamSaver.js入门教程:优雅解决前端下载文件的难题

    点赞 + 关注 + 收藏 = 学会了 本文介绍一个能让前端优雅下载大文件的工具:StreamSaver.js ⚡️ StreamSaver.js GitHub地址 ⚡️ 官方案例 StreamSaver.js 可用于实现在Web浏览器中直接将大文件流式传输到用户设备的功能。 传统的下载方式可能导致大文件的加载时间较长或造成内存占用过

    2024年02月08日
    浏览(52)
  • 【前端】下载文件方法

    我最初使用的方法就是这个,只要提供了文件的服务器地址,使用 window.open 也就是在新窗口打开,这时浏览器会自动执行下载。 其实window.open和a标签是一样的,只是a标签是要用户点击触发,而window.open可以主动触发 后端如果设置了Content-Disposition ,那么不需要download属性也能

    2024年01月24日
    浏览(35)
  • 前端:下载文件(多种方法)

    一、简介 前端经常会有下载文件的需求,这里总结了几种常用的方法,方便日后查看。 二、a标签下载 a href=\\\"https://abc.png\\\" download=\\\"abc.png\\\" target=\\\"view_window\\\"下载/a 三、window.open下载 四、location.href 五、saveAs 六、loadFileSimply 6.1、loadFileSimply 6.2、fileDownload 6.3、使用 七、url下载 八、

    2024年02月13日
    浏览(41)
  • 前端实现下载文件的方法汇总

    对于前端来说,下载文件是一个特别常见的需求。但是前端要根据后端返回的内容,来选择下载文件的具体方法。通常情况下,后端要么给你 返回文件的网络地址 ,要么 返回文件流 。返回地址一般用在静态文件上,比如图片和音视频资源等;返回文件流一般用在动态文件上

    2024年02月09日
    浏览(45)
  • 【前端文件下载】直接下载和在浏览器显示下载进度的下载方法

    之前做下载文件遇到了点问题, 就趁此机会总结一下前端下载文件的方法: 如果是浏览器支持的类型, 那么打开的话是一个preview操作, 那么针对浏览器不支持预览的类型, 如果打开的话就会进行下载操作 a. 地址栏直接输入URL b. window.location.href = URL c. window.open(URL) 使用a标签来下载

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包