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

后端接口返回二进制文件,前端 window.opent预览展示

详细步骤

1.修改 PreviewApi 函数:

  • 设置 responseType 为 ‘arraybuffer’,以接收二进制数据。
export const PreviewApi = (data) => request({method: 'post',url: '/dev-api/preview',responseType: 'arraybuffer',data
});

3.处理响应:

  • 使用 new Uint8Array(response.data) 将 ArrayBuffer 转换为 Uint8Array。
  • 使用 Blob 构造函数将 Uint8Array 转换为 Blob 对象。
  • 使用 URL.createObjectURL 方法生成 Blob URL。
  • 使用 window.open 方法在新窗口中打开生成的 Blob URL。
<template><div><button @click="onPreview(row)">预览 PDF</button></div>
</template><script>
import { ldjtPreviewApi } from '@/api/your-api-file'; // 引入你的 API 文件export default {data() {return {row: { qqlsh: 'example_qqlsh' } // 示例数据,实际使用时从父组件或其他地方获取};},methods: {onPreview(row) {ldjtPreviewApi({ qqlsh: row.qqlsh }).then((response) => {if (response.status === 200) {const binaryData = new Uint8Array(response.data);const url = this.binaryToPdfUrl(binaryData);console.log('Generated URL:', url);window.open(url);} else {this.$message({message: '请求失败',type: 'error'});}}).catch((error) => {this.$message({message: error.message || '请求出错',type: 'error'});})},binaryToPdfUrl(binaryData) {const blob = new Blob([binaryData], { type: 'application/pdf' });const url = URL.createObjectURL(blob);return url;}}
};
</script><style scoped>
/* 你可以在这里添加一些样式 */
</style>

手动验证二进制数据

你可以将二进制数据保存为文件,手动打开验证 PDF 文件是否有效。以下是一个示例代码:

function binaryToPdfFile(binaryData, filename) {const blob = new Blob([binaryData], { type: 'application/pdf' });// 创建一个临时的下载链接const link = document.createElement('a');link.href = URL.createObjectURL(blob);link.download = filename;link.click();
}// 调用函数,将二进制数据保存为 PDF 文件
binaryToPdfFile(new Uint8Array(response.data), 'test.pdf');

相关文章:

后端接口返回二进制文件,前端 window.opent预览展示

详细步骤 1.修改 PreviewApi 函数&#xff1a; 设置 responseType 为 ‘arraybuffer’&#xff0c;以接收二进制数据。 export const PreviewApi (data) > request({method: post,url: /dev-api/preview,responseType: arraybuffer,data });3.处理响应&#xff1a; 使用…...

基于STM32的红外遥控接收器

1. 引言 红外遥控技术广泛应用于电视、空调等家用电器的控制。通过本项目&#xff0c;我们将学习如何使用STM32开发板搭建一个红外遥控接收器&#xff0c;能够接收来自遥控器的信号&#xff0c;并在串口终端上显示按键信息。 2. 环境准备2.1 硬件需求 - STM32开发板&#xff0…...

K8S网络插件故障处理

1网络插件故障 1此故障问题处理方法 查询ip是否正常是否是主节点IP地址如果不是需要更改 更改方式 1 修改calico.yaml文件的相应参数 # Cluster type to identify the deployment type - name: IP_AUTODETECTION_METHOD #增加内容value: "interfaceens*" 或者 value…...

优化前端开发中的提示语设计基本原则

文章目录 一致1、同一对象&#xff0c;指称一致2、同一状态&#xff0c;描述一致3、同一行为&#xff0c;提示一致 简洁1、用词简短 条理1、上下呼应2、主次分明 亲和1、化“难”为易2、“礼”字当先3、正向表达 灵动1、用词多变2、远离平淡 契合1、身份契合2、产品契合 示例1、…...

飞凌嵌入式FET527N-C核心板现已适配Android 13

飞凌嵌入式FET527N-C核心板现已成功适配Android13&#xff0c;新系统的支持能够为用户提供更优质的使用体验。那么&#xff0c;运行Android13系统的FET527N-C核心板具有哪些突出的优势呢&#xff1f; 1、性能与兼容性提升 飞凌嵌入式FET527N-C核心板搭载了全志T527系列高性能处…...

uniapp 如何修改 返回按钮(左上角+物理按钮+侧滑)触发的返回事件

背景&#xff1a; 使用uniapp 开发安卓app&#xff0c;在用户编辑后直接返回时&#xff0c;使用弹窗提醒用户&#xff1a;还没有保存&#xff0c;是否保存&#xff1f; 方案 1. 使用自定义返回事件 //返回 back() { // 业务逻辑&#xff0c;弹窗提醒 uni.showModal({title:…...

appium启动 install driver安装驱动

appium启动 appiumPS C:\Windows\system32> appium [Appium] Welcome to Appium v2.12.1 [Appium] The autodetected Appium home path: C:\Users\liyd\.appium [HTTP] Could not start REST http interface listener. The requested port may already be in use. Please m…...

【机器学习】均方误差根(RMSE:Root Mean Squared Error)

均方误差根&#xff08;Root Mean Squared Error&#xff0c;RMSE&#xff09;是机器学习和统计学中常用的误差度量指标&#xff0c;用于评估预测值与真实值之间的差异。它通常用于回归模型的评价&#xff0c;以衡量模型的预测精度。 RMSE的定义与公式 给定预测值 和实际值 …...

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod广告播放系统

基于Spring Boot实现的原生Android广告播放系统背景&#xff0c;主要可以从以下几个方面进行阐述&#xff1a; 一、市场需求与背景 移动互联网的快速发展&#xff1a; 随着移动互联网技术的不断进步&#xff0c;智能手机已成为人们日常生活中不可或缺的一部分。人们越来越多地…...

【机器学习】均方误差(MSE:Mean Squared Error)

均方误差&#xff08;Mean Squared Error, MSE&#xff09;是衡量预测值与真实值之间差异的一种方法。在统计学和机器学习中&#xff0c;MSE 是一种常见的损失函数&#xff0c;用于评估模型的预测准确性。 均方误差的定义 假设有一组真实值 ​ 和模型预测的对应值 ​。均方误…...

融合虚拟与现实,AR Engine为用户提供沉浸式交互体验

当今的应用市场中&#xff0c;传统的应用产品已经难以完全满足消费者的多样化需求。为了在竞争激烈的市场中脱颖而出&#xff0c;企业需要深入洞察用户需求&#xff0c;提供个性化的服务体验和差异化的产品创新&#xff0c;以吸引并留住消费者。 比如&#xff0c;购物类App通过…...

python | xmltodict,一个非常厉害的 关于XML数据 Python 库!

本文来源公众号“python”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;xmltodict&#xff0c;一个非常厉害的 Python 库&#xff01; 大家好&#xff0c;今天为大家分享一个非常厉害的 Python 库 - xmltodict。 Github地址&am…...

教程:FFmpeg结合GPU实现720p至4K视频转换

将一个 720p 的视频放大编码到 4K&#xff0c;这样的视频处理在很多业务场景中都会用到。很多视频社交、短视频、视频点播等应用&#xff0c;都会需要通过服务器来处理大量的视频编辑需求。 本文我们会探讨一下做这样的视频处理&#xff0c;最低的 GPU 指标应该是多少。利用开源…...

MeterSphere接口自动化-ForEach循环

接口自动化场景&#xff1a;一个接口根据不同的参数取值来运行测试&#xff0c;本场景中只有一个参数来去不同值。举例如下&#xff1a; https:://test.csdn/query?placementList1接口&#xff0c;测试id1,2,3时&#xff0c;断言接口返回的data数据都有返回。&#xff08;当然…...

ssm074应急资源管理系统+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;应急资源管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本应急资源管理系统…...

怎么对 PDF 添加权限密码或者修改密码-免费软件分享

序言 目前市面上有关PDF处理的工具有很多&#xff0c;不过绝大多数的PDF处理工具都需要付费使用&#xff0c;且很多厂商甚至连试用的机会也不给用户&#xff0c;偶有试用的&#xff0c;其试用版的条件也极为苛刻&#xff0c;比如只能处理前两页&#xff0c;或者只能处理非常小的…...

LVSM: A LARGE VIEW SYNTHESIS MODEL WITH MINIMAL 3D INDUCTIVE BIAS 论文解读

目录 一、概述 二、相关工作 1、新视角合成 2、优化3D表示 3、可泛化的前馈方法 三、LVSM 1、总体结构 2、encoder-decoder 3、decoder-only 4、Loss 一、概述 该论文提出大视角合成模型LVSM&#xff0c;基于Transformer方法&#xff0c;用于场景中或对象级层次从稀…...

7.《双指针篇》---⑦三数之和(中等偏难)

题目传送门 方法一&#xff1a;双指针 1.新建一个顺序表用来返回结果。并排序数组。 2.for循环 i 从第一个数组元素遍历到倒数第三个数。 3.如果遍历过程中有值大于0的则break&#xff1b; 4.定义左右指针,以及target。int left i 1, right n - 1; int target -nums[i];…...

鸿蒙ArkTS中的布局容器组件(Scroll、List、Tabs)

1、Scroll组件 Scroll组件是一个可滚动的容器组件&#xff0c;用于在子组件的布局尺寸超过父组件尺寸时提供滚动功能。它允许在其内部容纳超过自身显示区域的内容&#xff0c;并通过滚动机制来查看全部内容。这对于显示大量信息&#xff08;如长列表、长篇文本或大型图像等&…...

mybatis连接PGSQL中对于json和jsonb的处理

pgsql数据库表字段设置了jsonb格式&#xff1b;在java的实体里使用String或者对象转换会一直提示一个错误&#xff1a; Caused by: org.postgresql.util.PSQLException: ERROR: column "xx" is of type jsonb but expression is of type character varying 需要加一…...

AI助力:让快马平台智能生成排列组合列举与计算一体化工具

最近在做一个数据分析项目时&#xff0c;遇到了需要批量计算排列组合的需求。传统的手动计算不仅效率低&#xff0c;还容易出错。于是我开始寻找更智能的解决方案&#xff0c;发现InsCode(快马)平台的AI辅助开发功能正好能帮我快速实现这个工具。 需求分析 排列组合在概率统计、…...

深度解析Internet Archive下载器:数字图书馆资源获取的完整方案

深度解析Internet Archive下载器&#xff1a;数字图书馆资源获取的完整方案 【免费下载链接】internet_archive_downloader A chrome/firefox extension that download books from Internet Archive(archive.org) and HathiTrust Digital Library (hathitrust.org) 项目地址:…...

从零开始:如何用开源方案打造你的第一台六足机器人

从零开始&#xff1a;如何用开源方案打造你的第一台六足机器人 【免费下载链接】hexapod 项目地址: https://gitcode.com/gh_mirrors/hexapod5/hexapod 想要亲手制作一台能够自如行走的六足机器人吗&#xff1f;hexapod开源项目为你提供了一套完整的免费解决方案&#…...

Ubuntu系统下Intel D405深度相机与Realsense-viewer的初次邂逅与配置实战

1. 开箱初体验&#xff1a;Intel D405深度相机的硬件揭秘 第一次拿到Intel D405深度相机时&#xff0c;那个黑色包装盒比想象中要小巧。拆开包装后&#xff0c;你会看到相机本体、USB数据线和几份纸质文档。相机重量约100克&#xff0c;尺寸和一副扑克牌相当&#xff0c;非常适…...

计算机毕设 java 基于 BS 的驾校在线学习考试系统 SpringBoot 驾校在线学习与考试管理平台 JavaWeb 驾校理论学习与模拟考试系统

计算机毕设 java 基于 BS 的驾校在线学习考试系统 43i2x9&#xff0c;末尾的数字和英文也要加上 &#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享随着驾考需求的不断增长&#xff0c;传统驾校理…...

医学图像分类实战:基于kvasir v2胃病数据集的深度卷积网络性能对比

1. 医学图像分类与KVASIR V2数据集简介 胃镜图像分类是计算机辅助诊断系统中的关键环节。KVASIR V2作为目前最全面的公开胃病数据集&#xff0c;包含8类常见胃部病变的8000张高清图像&#xff0c;每类1000张。这些图像由专业胃肠病专家标注&#xff0c;覆盖了从正常黏膜到早期…...

无人机控制中的模糊控制:一维与二维模糊控制及其实现要点

无人机 控制方面 模糊控制 有一维模糊和二维模糊两种&#xff0c;文字说明资料已遗失&#xff0c;数学模型可以根据仿真图推导&#xff0c;直接运维simulink会报错&#xff0c;是因为没有导入模糊规则&#xff0c;在运行simulink之前需要在命令窗口输入workreadfis work.fis ,这…...

Remotery WebSocket通信机制:浏览器端性能数据可视化

Remotery WebSocket通信机制&#xff1a;浏览器端性能数据可视化 【免费下载链接】Remotery Single C file, Realtime CPU/GPU Profiler with Remote Web Viewer 项目地址: https://gitcode.com/gh_mirrors/re/Remotery Remotery作为一款轻量级实时CPU/GPU性能分析工具&…...

2025年开源工具jable-download:视频下载工具高效解决方案

2025年开源工具jable-download&#xff1a;视频下载工具高效解决方案 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download 在数字化内容消费日益增长的今天&#xff0c;视频资源的获取与保存成为许多用…...

OpenClaw异常处理手册:百川2-13B任务失败排查全攻略

OpenClaw异常处理手册&#xff1a;百川2-13B任务失败排查全攻略 1. 为什么需要这份手册 上周我尝试用OpenClaw百川2-13B模型自动处理日报生成任务时&#xff0c;连续三天凌晨任务失败。每次起床看到控制台的红色错误提示&#xff0c;都要花半小时翻日志找原因。最崩溃的是&am…...