在线预览PDF文件功能实现

💡在线预览PDF文件功能实现

📊前端


🍁HTML

<a @click="previewPdf(record.REPORT_NAME,record.REPORT_PATH)">预览</a>

⛄JS

请求方法的封装,request 是 axios.create()的实例对象,根据文件地址路径,请求到文件数据,并且返回接收类型是Blob对象

export function downloadFile (params) {
  return request({
    url: api.downloadFile,
    method: 'post',
    data: params,
    responseType: 'blob' //重点部分:返回格式必须是 blob
  })
}

URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。

previewPdf (fileName, filePath) {
      downloadFile({ filePath: filePath }).then(res => {
        // console.log(res)
        var blob = new Blob([res], { type: 'application/pdf' })
        const url = URL.createObjectURL(blob)
        window.open(url)
      }).catch(req => {
        this.$message.error('预览失败,无法找到文件')
        console.log('失败原因', req)
      })
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值