axios通过pdf下载地址预览pdf

前端预览pdf文件流 2、创建预览方法(具体使用时将axios的请求路径替换为你的后端下载地址)把后端返回的pdf文件流转为blob路径,利用浏览器直接预览。3、在你所需要的地方调用previewFile方法。后端接口返回pdf文件流,实现新窗口预览pdf。 阅读详情

前言

最近做一个功能,根据一个pdf的下载地址,做出既能下载又能预览pdf的两个功能按钮,因为地址本身在浏览器中打开就能下载,直接记录怎么实现预览功能。

具体步骤

1.前台html代码

<iframe id="iframe" frameborder="0" style="width: 100%; height: 100%"></iframe>

2.前台js代码

axios({
  method: 'get',
  url:'/preview', 
  params:{
       pdfUrl:'https://xxxx/xxx/xxx.pdf'
  },
  responseType: 'blob',
}).then(function (response) {
  let blob = new Blob([response.data], { type: response.data.type })
  let url = URL.createObjectURL(blob)
  document.getElementById('iframe').src = url
}).catch(err => {
});

3.后台代码

 	@RequestMapping("/preview")
    public void preview(HttpServletResponse response, String pdfUrl) {
        response.setContentType("application/pdf");
        try(OutputStream out = response.getOutputStream();
            InputStream in = new BufferedInputStream(new URL(pdfUrl).openConnection().getInputStream())) {
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = in.read(b))!=-1) {
                out.write(b,0,len);
            }
            out.flush();
        } catch (Exception e) {
            System.out.println(e);
        }
    }

后记

实现办法还有用pdf.js,因为不想在vue中添加依赖,没有采用。

使用iframe预览pdf; 使用iframe预览pdf,iframe预览报错 阅读详情

相关推荐

vue-pdf 通过文件流预览pdf文件

用过vue-pdf的同志应该都知道,如果拿到的是一个pdf的在线链接在使用这个的时候会出现一个跨域问题。而后端不想去处理跨域情况,所以后面就考虑到使用文件流的形式去处理。 首先,下载vue-pdf npm install vue-pdf -D 其次,模板里面引入vue-pdf import pdf from 'vue-pdf' html: <pdf :src="src"></...

这是我的博客 1万+

axios下载pdf

一般情况下,网页上下载资源,都是通过<a href="https://aaa.com/download?a=b">选组</a>连接跳转之后,会自动下载,说白了就是get请求 这种是最简单的,但是有时候满足不了要求,比如添加header参数等。 postman是个好东西,可以通过点击Send and Download来实现。如果只是进行send操作,那返回的就是流数......

陈灬大灬海 1959

通过Java和Vue实现pdf的预览和下载

通过Java和Vue实现pdf的预览和下载

隔壁张同学 3462

记录-关于axios“GET”请求获取到pdf文件流下载的问题

不是使用axios的原因,也不是responseType未设置的原因,仅仅是因为我把请求参数和responseType分成俩对象导致被忽略了…具体get请求传参的可以去看官网,这里记录下因为传参导致我下载文件出的错误。对比代码放在下面,希望和我碰到同样问题的同学能少踩坑。

weixin_41611635的博客 1280

Vue实现pdf(excel)及压缩包或其他类型在线预览、导出下载功能总结(后端返回流,pdf.js)

先说这次的需求,需要在一个vue页面中的一部分实现预览pdf功能 一、全屏预览模式 先说直接全屏预览的,直接axios获取到数据,将流转为二进制文件, 可以window.open 也可以嵌入到a标签的href属性中 二、利用pdf.js嵌入到iframe中预览 第一步跟全屏一样,就是最后打开方式不一样 pdf.js官网下载pdf.js文件 将文件解压缩,将里面的build和web文件夹放在static目录下面,一定要是static目录 目录结构如下 接着在组件里就可以直接使用了, iframe的原理是

是日前端 5684

Vue项目利用pdf.js/iframe/embed实现在线预览pdf文件

前言 最近在做一个精品课程,需要在线预览课件ppt,我们的思路是将ppt转换为pdf在线预览,所以问题就是如何实现在线预览pdf了。 在实现的过程中,为了更好地显示效果,我采用了多种不同的方法,最终选择效果最好的pdf.js。 实现方法: 1:iframe 采取iframe将pdf嵌入网页从而达到预览效果,想法很美好,实现很简单,但显示很残酷… 虽然一行代码简洁明了,打开谷歌浏览器效果也还行,但缺点也是十分明显的!!!! <iframe src="http......" width="100%"&gt

m0_46627730的博客 9552

前端实现pdf文件流/pdf链接下载

pdf下载

HelloWorldLJY的博客 4587

【React】- 跨域PDF预览、下载(改文件名)、打印

我们经常会碰到跨域来方位PDF,同时需要下载、打印的需求,通常由于浏览器的安全策略,可以预览,但是下载和打印可能会受限,这时候怎么办呢?

前鼻音的博客 2106

vue axios下载pdf文件空白的问题

也不好使,使用原生axios也不好使,这时发现mock会自动将responseType设置为空。将import './mock’注释掉即可。下载pdf时,发现设置。

Hantham的博客 1259

跟着团子学SAP PS:BOM和项目结构的联动-BOM Transfer CN33

关于项目中的物料组件挂接你需要了解的一点功能

Lucas1211的博客 2万+

前端axios下载文件(word、pdf等)

前端使用axios调后端接口来处理文件(word、pdf等) 考虑到项目后期维护,自己封装了axios方法,方便项目后期更换服务器 api.js import axios from 'axios' axios.defaults.withCredentials = true // axios.defaults.headers.common['Authorization'] = localStorage.getItem('token') export default async ( url, data

NJR10byh的博客 2077

深入RK3588嵌入式Linux开发:uboot源码定制化移植实战

本文详细介绍了RK3588嵌入式Linux开发中,如何绕过庞大的官方SDK,从官方仓库获取纯净U-Boot源码并进行定制化移植的完整实战流程。内容包括编译环境搭建、交叉工具链配置、源码结构解析、设备树(Device Tree)修改、环境变量定制、编译脚本编写以及常见问题调试技巧,旨在帮助开发者深入理解系统引导过程,掌握为定制硬件适配U-Boot的核心技能。

weixin_29169505的博客 423

手机端浏览器使用vue-pdf实现PDF文件预览(踩坑版)

我的需求是后端返回一个PDF的下载地址,这个地址在浏览器上打开就是下载PDF文件,本来是想直接让vue-pdf的src直接等于这个下载链接,但是中间碰到了跨域的错误(本地的地址和开发环境不同),这样直接使用有点行不通,后来改成使用axios请求,下载到文件之后,又碰到一堆解析的问题,总结了一下网上各位大神的方法,主要是需要把请求回来的PDF文件流转换成Blob文件,才可以成功。踩了N多次坑,耗时1整天,找了网上很多的文章,最后综合各种方法,才得以解决。然后执行 npm install。

qq_35777293的博客 3242

Anomalib库安装以及使用

Anomalib是一个专注于异常检测的深度学习库。它的目标是收集最新的异常检测算法,并提供用于在公共和私有数据集上进行基准测试的工具。该库提供了一系列已实现的异常检测算法,这些算法在最近的文献中有所描述。此外,Anomalib还提供了一套工具,方便开发人员开发和实现自定义模型。该库特别注重基于图像的异常检测,旨在识别数据集中的异常图像或图像中的异常像素区域。通过使用Anomalib,用户可以快速构建和评估各种异常检测算法,以满足其特定需求。

mingo_敏 5198

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

9794

文件流实现下载、预览

公司系统出于安全性考虑,不允许控制台出现文件地址,避免有人把地址复制给没有该文件查看权限的人。所以只能后端返回文件流。上面这个方法只适用于预览图片和后端可以转为pdf的word文档,excel和其他office文件没法实现。然后是预览,文件有word类型和图片。我们的word是由后端把文件转为pdf类型,饭后返回pdf文件流。

ifmushroom的博客 374

SAP 实施:Waterfall vs. Agile —— 一场“结构性矛盾“的深刻比较先说结论:在 SAP 世界里,这从来不是“谁更好“的宗教问题,而是“你的项目 DNA 是什么“的战略选择。​

SAP 实施:Waterfall vs. Agile —— 一场"结构性矛盾"的深刻比较 先说结论:在 SAP 世界里,这从来不是"谁更好"的宗教问题,而是"你的项目 DNA 是什么"的战略选择。​ SAP 早已用 SAP Activate​ 给出了官方态度——它不是纯 Agile,也不是回头去搞旧 Waterfall,而是一个带质量门的混合架构。 1. 先回到本质:两者解决的是不同维度的风险 维度 Waterfall(传统 ASAP 路线)​ Agile(SCRUM/Kanban 式迭代)​

金牌架构师 336

根据接口返回不同数据,前端(vue)实现下载功能(实时记录)

【代码】根据接口返回不同数据,前端(vue)实现下载功能(实时记录)

Amily8512的博客 528

彻底解析 DDIC_TYPE_INCONSISTENCY:从 ABAP ST22 连环 Dump 到 SE14 一键修复

听上去像内核级的致命故障,实则更多源于日常运维的细枝末节。只要掌握的排查三板斧,结合严格的变更流程与周期性的字典体检,再严重的 Dump 也能化险为夷。希望本文的案例与步骤能帮助读者在下一次遇到类似问题时,既能快速止血,也能追根溯源,避免重蹈覆辙。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 629

Loki 分布式日志中心服务

分布式日志中心 Loki + Promtail + Grafana

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2353

前端-vue-文件上传(图片、word,ppt,pdf,excel,txt等文件流)

1. 文件上传(图片、word,ppt,pdf,excel,txt等文件流) 总结一下上传组件的思路 input标签的@change事件 通过input标签的@change事件的绑定,进行文件的选择上传,获取到文件const uploadFile = file.target.files[0],然后通过文件流转为base64,然后可以在前端进行预览。 预览只有图片和PDF 预览的文件不多,只有img,和pdf的可以预览,这和浏览器可以打开的文件流有关,也就是说前端能做到的预览只有图片和PDF,像word、和

shuaishuaizhang8的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Vue中进行pdf的预览下载 vue-pdf

1、使用npm 下载vue-pdf npm install --save vue-pdf 2、封装pdf组件 &amp;lt;template&amp;gt; &amp;lt;div style=&quot;height: 75vh;overflow-y: auto;overflow-x: hidden;&quot;&amp;gt; &amp;lt;pdf :src=&quot;src&quot;&amp;gt;&amp

weixin_43452622的博客 2万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

vue 根据接口返回的url预览pdf和下载pdf文件

接下来我们创建一个URL对象,以便在浏览器中访问该PDF文件,然后创建一个a标签并设置其href属性为该URL对象的值。pdf的URL直接打开的话是网页预览界面,而不是文件下载,文件下载需要的是二进制数据,但是如果接口返回的是在线链接,那么可以通过以下操作进行格式转化再去下载。创建一个方法downloadPDF(),接收一个在线URL地址,然后使用axios发送GET请求获取PDF文件的二进制数据。这将会在点击该按钮时调用downloadPDF()方法并下载名为file.pdf的PDF文件。

qq_44782585的博客 8387

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

vue直接下载文件

当我们下载文件时,请求服务器的文件会在浏览器打开这个链接,下面代码就是直接下载文件不预览的方法 axios({ method: "get", url: 你的url, responseType: "blob", }).then((res) => { let hzIndex=res.config.url.lastIndexOf('.');//获取点的位置 let lineIn

weixin_42411608的博客 675

【vue pdf预览打印下载】

vue pdf预览打印下载简介预览打印 简介 后端可以通过两种方式返回流,一种是get,一种是post。get就比较简单了,可以通过接口路径传参直接在浏览器访问,也就是可以通过iframe直接嵌套就可以。咱们下文主要讲post方式。 预览打印 后端返回的流: axios({ method: ‘post’, responseType: ‘blob’, // 一定要设置响应类型,否则页面会是空白pdf url: faceConfig.basePath + ‘’ + exportTargetData, //

Lun_dy的博客 1357
上一篇: 共享一个启动jar包的shell脚本
下一篇: 高并发redis自增increment使用
老贼大魔王
博客等级 码龄10年 23粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值