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 });
};
}));
}
相关推荐
橙子1991101616 分钟前
在 Kotlin 中,ViewModel 的获取
开发语言·vue.js·kotlin
!win !1 小时前
分享二个实用正则
javascript·正则表达式
xw51 小时前
分享二个实用正则
javascript·正则表达式
刘新明19891 小时前
算法还原案例4-OLLVM_MD5
开发语言·前端·javascript·1024程序员节
诚实可靠王大锤1 小时前
react-native实现多列表左右滑动+滚动TabBar悬停
javascript·react native·react.js·1024程序员节
疯狂的沙粒2 小时前
前端开发【工具函数】基于dayjs 封装的DateUtils工具函数,可以直接拿着使用
前端·javascript·vue.js·1024程序员节
jingling5552 小时前
CSS进阶 | 不用一行JS!用纯CSS打造会动的现代化单页应用(3D翻转卡片)
前端·javascript·css
你的电影很有趣2 小时前
lesson76:Vue.js 核心特性详解:事件处理、计算属性与侦听器
javascript·vue·1024程序员节
重铸码农荣光4 小时前
JavaScript 变量声明:从 var 到 let/const 的进化与深思
javascript
十五春会4 小时前
【uniapp】App平台展示pdf文件
pdf·uni-app