首页 > 其他分享 >Js下载返回是二进制保存到本地文件

Js下载返回是二进制保存到本地文件

时间:2024-03-05 11:12:01浏览次数:27  
标签:XMLHttpRequest 二进制 URL Js xhr link 本地 var

// 创建一个新的 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();

// 监听 XMLHttpRequest 对象的加载完成事件
xhr.addEventListener('load', function() {
    // 如果请求成功完成
    if (xhr.status === 200) {
        // 获取到二进制文件内容
        var blob = new Blob([xhr.response], { type: 'application/octet-stream' });
        
        // 创建一个临时的 URL
        var url = URL.createObjectURL(blob);
        
        // 创建一个 <a> 标签用于下载
        var link = document.createElement('a');
        link.href = url;
        link.download = 'filename'; // 设置文件名
        link.click();
        
        // 释放临时的 URL 对象
        URL.revokeObjectURL(url);
    }
});

// 发送请求以下载文件
xhr.open('GET', 'Handler.ashx?method=DownloadZhuTu&ID=' + ID);
xhr.responseType = 'blob'; // 告诉服务器响应类型是二进制数据
xhr.send();

 

标签:XMLHttpRequest,二进制,URL,Js,xhr,link,本地,var
From: https://www.cnblogs.com/wzf-Learning/p/18053549

相关文章

  • 在Docker中,本地的镜像文件都存放在哪里?
    在Docker中,镜像(Images)保存在本地文件系统中,具体的保存位置取决于您使用的操作系统。以下是一些常见操作系统的Docker镜像保存位置:Linux:默认情况下,Docker镜像保存在/var/lib/docker/目录下。当您使用dockerpull命令从DockerHub或私有镜像仓库中拉取镜像时,Docker会自动将镜......
  • ems-jsp 用户登录模块
    整体思路1.登录首先要从前端获取账号和密码2.根据用户名去查询用户,用户存在比对密码(注意由于密码是加密存入数据库的所以比对时要用用户输入的密码加密后跟数据库中的密码比对)。  用户不存在,登陆失败,返回登录界面并且显示失败原因。代码:展示部分Controller层:@Requ......
  • Linux下挂在samba 文件夹到本地
    在Linux中,可以使用mount命令来打开SMB(ServerMessageBlock)共享。sudomount-tcifs//服务器IP地址/共享目录路径/本地挂载点-ousername=用户名,password=密码其中,需要将"//服务器IP地址/共享目录路径"替换为实际的SMB共享路径;"/本地挂载点"替换为希望在本地创建的文件夹作......
  • linux下使用官网压缩包安装nodejs
    linux下使用官网压缩包安装nodejs一、下载1、官网地址:https://nodejs.org/en/download/点击对应版本下载,这里提供的是tar.xz压缩包二、解压其实这种文件其实是两层压缩,外层是.xz压缩方式,内层是.tar压缩方式,下面进行逐层解压1.xz解压xz-dxxx.tar.xz2.tar解压tar-......
  • three.js添加阴影效果
    渲染阴影由于渲染阴影需要耗费大量的计算资源,所以默认情况下Three.js中是不会渲染阴影的,为了渲染阴影效果,需要告诉渲染器需要阴影效果renderer.shadowMap.enabled=true;指定阴影的光源spotLight.castShadow=true;//产生阴影的光源指定物体投射、接受阴影plane.rece......
  • 使用JMeter的JSON提取器:通过递归下降查找,从接口响应中提取特定字段
    在接口测试中,我们经常需要从返回的JSON数据中提取特定字段以便后续使用。JMeter提供了JSON提取器,可以帮助我们实现这一目标。本文将介绍如何使用JMeter的JSON提取器通过递归下降查找的方式从接口响应中提取特定字段,并通过示例解释JSON表达式中".."的逻辑。1.示例接口响应......
  • js之DOM
    1.DOM(DocumentObjectModel)文档对象模型js中对象的分类有三种:用户定义对象内建对象ArrayDateMath等宿主对象(由浏览器创建的对象)modelmap可以将DOM看成一棵“树”。DOM把文档看做一棵家谱树,parent、child、sibling等。2.DOM中的节点元素节点elementnode ......
  • vite+vue3 遇到报错 Uncaught SyntaxError: Cannot use import statement outside a m
    按照报错找到了对应的位置import{createApp}from'/node_modules/.vite/deps/vue.js?v=d0a669cf'importAppfrom'/src/pages/project1/App.vue'//import'./index.css'//importrouterfrom"./router"//createApp(App).mount(&#......
  • 接口测试-json文件读取报java.lang.ClassCastException: java.util.LinkedHashMap can
    问题原因:从json文件中读取的信息为hashMap,与预期(类对象)格式不匹配,无法解析。问题分析:json文件包含一个json串列表,代表向接口中传递不同的参数组合,通过下面方法读取json文件信息,反序列化成类对象,并把这些赋值的对象进行接口请求参数进行传递。publicList<T>getReadValuesLi......
  • ruoyi-vue axios通过接口请求wav、mp3音频二进制数据
    实现方式在axios请求中注明responseType:'blob',headers的Accept:'audio/wav'不清楚要不要写,我加上了(请求接口)在接口返回值中,使用Blob的构造方法将数据转换成Blob对象(封装Blob对象&形成URL)将得到的Blob对象通过URL.createObjectURL(audioBlob)形成url,该url类似于bl......