目录

vue Pdf 预览控制台把pdf的url暴露出来了

在写项目的时候,需要做一个pdf下载收费的功能,我才用的插件是vue-pdf,发现在控制要里给我暴露出一个 blob:http://localhost:9528/74eb90ba-f721-48f1 直接就可以下载。

这个问题的出现是因为你使用了Blob URL,它会在浏览器中创建一个唯一的URL来表示blob对象。

这是我原先的代码逻辑

复制代码
loadPdfStream() {
  const params = {
    bookUrl: this.$route.query.bookUrl,
    pageNum: this.pageNum,
  };
  readBook(params).then((res => {
    const blob = new Blob([res], { type: 'application/pdf' })
    this.src = pdf.createLoadingTask({ url: URL.createObjectURL(blob), CMapReaderFactory });
  }));
}

解决方案是使用data URL代替Blob URL。你可以使用URL.createObjectURL()方法将Blob对象转换为data URL,然后将其传递给PDF阅读器。这样做可以避免在控制台中看到Blob URL。

复制代码
 loadPdfStream() {
const params = {
bookUrl: this.$route.query.bookUrl,
pageNum: this.pageNum,
};
readBook(params).then((res => {
const blob = new Blob([res], { type: 'application/pdf' });
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = () => {
this.src = pdf.createLoadingTask({ url: reader.result, CMapReaderFactory });
};
}));
}
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
hhope几秒前
🧀 【实战演练】从零搭建!让复制粘贴上传文件“跑起来” (Node.js 后端版)
前端·javascript·面试
逆袭的小黄鸭1 分钟前
内存泄漏:四大场景剖析与解决方案
前端·javascript·面试
清风絮柳13 分钟前
59.基于ssm和vue学生考试成绩管理系统
前端·javascript·vue.js·毕业设计·ssm架构·学生考试成绩管理系统·学生考试成绩管理
ElasticPDF-新国产PDF编辑器27 分钟前
Angular 项目使用 pdf.js 及批注插件Elasticpdf 教程
javascript·pdf·angular.js
難釋懷29 分钟前
JavaScript基础-window.localStorage
开发语言·javascript
巴巴博一1 小时前
keep-alive缓存
前端·javascript·vue.js·缓存·typescript
wuaro2 小时前
JS的深浅拷贝
前端·javascript·html
CHPCWWHSU2 小时前
vulkanscenegraph显示倾斜模型(5.6)-vsg::RenderGraph的创建
开发语言·javascript·ecmascript
苹果酱05672 小时前
SpringCloud第二篇:注册中心Eureka
java·vue.js·spring boot·mysql·课程设计
爱看书的小沐2 小时前
【小沐杂货铺】基于Three.JS绘制太阳系Solar System(GIS 、WebGL、vue、react)
javascript·vue.js·webgl·three.js·地球·太阳系·三维地球