首页 > 其他分享 >前端js下载文件方式记录

前端js下载文件方式记录

时间:2023-09-28 09:57:52浏览次数:37  
标签:URL 前端 downloadLink js Blob var document 下载

方式一: 前端组装数据进行下载

如下方式:

// 创建数据
var data = "Hello, world!";

// 将数据转换为 Blob 对象
var blob = new Blob([data], {type: "text/plain;charset=utf-8"});

// 创建一个 URL 对象,指向 Blob 对象
var url = URL.createObjectURL(blob);

// 创建一个下载链接
var downloadLink = document.createElement("a");
downloadLink.href = url;
downloadLink.download = "data.txt"; // 指定下载的文件名

// 模拟点击下载链接
document.body.appendChild(downloadLink);
downloadLink.click();

// 移除下载链接
document.body.removeChild(downloadLink);

其他文件类型下载的方式如下: Excel类型

    1. 创建一个包含数据的二维数组。
    2. 使用Blob对象将数据转换为二进制数据。
    3. 使用URL.createObjectURL()方法创建一个指向该Blob对象的URL。
    4. 创建一个隐藏的元素,并将其href属性设置为Blob对象的URL。
    5. 设置元素的download属性为要下载的文件名。
    6. 模拟点击元素以开始下载。
  • 下载完成后,释放Blob对象的URL
// 创建数据
var data = [
  ["Name", "Age", "Gender"],
  ["John", 28, "Male"],
  ["Jane", 32, "Female"]
];

// 将数据转换为 Blob 对象
var blob = new Blob(
  [data],
  {type: "application/vnd.ms-excel;charset=utf-8"}
);

// 创建一个 URL 对象,指向 Blob 对象
var url = URL.createObjectURL(blob);

// 创建一个隐藏的 <a> 元素,并将其 href 属性设置为 Blob 对象的 URL
var downloadLink = document.createElement("a");
downloadLink.href = url;
downloadLink.download = "data.xlsx"; // 指定下载的文件名
downloadLink.style.display = "none";

// 将 <a> 元素添加到文档中
document.body.appendChild(downloadLink);

// 模拟点击 <a> 元素以开始下载
downloadLink.click();

// 下载完成后,释放 Blob 对象的 URL
URL.revokeObjectURL(url);

// 从文档中移除 <a> 元素
document.body.removeChild(downloadLink);

 

标签:URL,前端,downloadLink,js,Blob,var,document,下载
From: https://www.cnblogs.com/qiushuiyu-108/p/17734944.html

相关文章

  • false == ''在js中为何判断为true
    当用==操作符将false对象和其他对象进行比较的时候只有0和空字符串、空数组等于false;undefined和null对象并不等于false对象,而null和undefined是相等的。letcompleted=false;console.log(completed==0);console.log(completed=='');console.log(completed......
  • vue下载PDF文件到本地
    方法1.downloadPDF(fileName){//要下载的文件路径varfileUrl='./file/'+fileName;//创建一个隐藏的<a>元素,用于下载文件vara=document.createElement('a');a.href=fileUrl;a.download=fileName;//可以自定义下载文件的名称a.style.displa......
  • destoon上做纯js实现html指定页面导出word
    因为最近做了范文网站需要,所以要下载为word文档,如果php进行处理,很吃后台服务器,所以想用前端进行实现。查询github发现,确实有这方面的插件。js导出word文档所需要的两个插件:12FileSaver.jsjquery.wordexport.js首先引入:1234<!--生成wo......
  • js中的类型转换
    js中的类型转换JavaScript中有两种类型转换:隐式类型转换(强制类型转换)和显式类型转换。类型转换是将一个数据类型的值转换为另一个数据类型的值的过程。隐式类型转换(强制类型转换):隐式类型转换是JavaScript自动进行的类型转换,通常发生在操作符运算或比较时,以确保操作的值具有相同......
  • 掌握Vue3 Props:提升你的前端开发技能
    Prop类型到这里,我们只看到了以字符串数组形式列出的prop:props:['title','likes','isPublished','commentIds','author']但是,通常你希望每个prop都有指定的值类型。这时,你可以以对象形式列出prop,这些property的名称和值分别是prop各自的名称和类型:props:{title:S......
  • React-Native之Gradle下载慢的解决方案
    一、解决gradle下载慢的问题1.使用国内镜像   maven脚本如下:buildscript{repositories{maven{url'https://maven.aliyun.com/repository/gradle-plugin'}maven{url'https://maven.aliyun.com/repository/google'}maven......
  • VScode对于json格式文件允许添加注释设置(永久有 效)
    如果你想让VSCode永久地将所有的.json文件都识别为JSONC,你可以通过修改VSCode的全局设置来实现。以下是具体步骤:在VSCode中按下Ctrl+,来打开设置(或者在菜单中选择"File"->"Preferences"->"Settings")。在搜索框中输入“files.associations”。在"Files:Associations......
  • 20个提升效率的JS简写技巧,告别屎山!
    JavaScript中有很多简写技巧,可以缩短代码长度、减少冗余,并且提高代码的可读性和可维护性。本文将介绍20个提升效率的JS简写技巧,助你告别屎山,轻松编写优雅的代码!移除数组假值可以使用filter()结合Boolean来简化移除数组假值操作。假值指的是在条件判断中被视为false的......
  • 202309272035-《maven依赖已下载,但还是报红,解决办法》
    1. 勾选设置,maven,选中“始终更新快照”。  2.点击“更新” ......
  • SpringBoot学习4(02整合项目+前端)
    1.添加web界面在resources包下的static包中导入需要用的包,编写html。 1.1测试一下 页面控制台中成功获取数据 1.2页面显示:查询全部信息 1.3添加功能实现 新建按钮的点击事件为   @click="handleCreate()"点击新建后弹出添加页面,该页面的确定提交按钮点击事......