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 });
};
}));
}
相关推荐
鹏多多2 小时前
PC 网站接入微信登录,这 10 个坑我替你踩完了!
前端·javascript·vue.js
用户298698530143 小时前
React 中 HTML 内容转 Word 文档的实现方案
javascript·react.js·html
mONESY4 小时前
我用 Next.js 16 + Supabase 从零做了个「背单词」H5 应用
javascript
boooooooom4 小时前
手把手做一个图 RAG 烹饪问答系统:Neo4j + Milvus + LLM 的工程实践
前端·javascript·后端
染指11107 小时前
103.RAG-LLamaIndex后端rag问答-聊天接口
前端·javascript·vue.js·人工智能
单线程_0114 小时前
从案例分析 Vue3 Tokenizer+Parser 源码三
前端·javascript·vue.js
jay神15 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
小磊哥er16 小时前
深入解构Claude Code - 第 8 篇 · 数据放哪、钱怎么算
javascript·ai编程
kyriewen18 小时前
我装了30多个Skill,给AI安排了8个岗位
前端·javascript·ai编程
默_笙20 小时前
🔥 让 AI 帮我写完整个 Next.js 博客:框架就是 AI 的"上下文 buff"
前端·javascript