vue2 结合后端预览pdf 跨域的话就得需要后端来返回 然后前端呈现

javascript 复制代码
<el-button :loading="pdfIslock" v-if="isPDFFile(form.pic)" type="primary" style="margin: 15px 0" @click="previewPDF(form.pic)"> 
  预览pdf
</el-button>

//npm install pdfjs-dist //如果没有就得先安装

import pdf from 'vue-pdf';
components: {
    pdf,
  },

data(){
    return {
      pdfIslock: false,
      pdfUrl: "",
      showDialog: false,   
    }
}

previewPDF(url){
      if(this.pdfIslock){
        this.$message.warning("文件下载中")
        return
      }
      this.pdfIslock = true      
      if(!url){
        this.$message.error("请先上传文件")
        return
      }
      const that = this
      let params = {
        fileName: url.split("/").pop()
      }
//fileProxyPdf 是后端的接口 返回的是一个pdf
      fileProxyPdf(params).then((response) => {      
        const blob = new Blob([response.data], { type: 'application/pdf' });
        const ourl = window.URL.createObjectURL(blob);
        // 将Object URL赋值给pdfUrl
        this.pdfUrl = ourl
        this.showDialog = true    
        this.pdfIslock = false      
      }).catch(function(){
        that.$message.error("下载失败,请稍后重试")
        that.pdfIslock = false 
      });      
      //window.open(url, '_blank');
    },
相关推荐
范什么特西6 小时前
一些常用名词
开发语言·前端·javascript
晴天166 小时前
前端打包工具全景解析
前端
晴天166 小时前
Vite vs Webpack 全方位对比
前端·webpack·node.js
体毛旺盛的猿6 小时前
HarmonyOS开发面试题
前端·华为·harmonyos
anOnion6 小时前
构建无障碍组件之Landmarks Pattern
前端·html·交互设计
牧瀬クリスだ6 小时前
前端三件套基础之JS!!!!
前端·javascript
风骏时光牛马6 小时前
提示词工程:大模型交互的核心塑造技术
前端
单线程_016 小时前
从案例分析 Vue3 Tokenizer+Parser 源码四
前端·javascript·vue.js
6 小时前
Python 图片处理:裁剪缩放至300×200,格式JPG/PNG/GIF,控制大小≤100KB
linux·前端·python
_阿南_13 小时前
项目中新增给AI制定的代码规范
前端·程序员