vue-pdf.js 在线预览问题

最近修改公司vue项目中使用pdf.js来实现在线预览上传的各类文件.由于使用pdf.js在预览时是直接在标签内将src属性赋值为要请求的地址.这就导致一个问题,会直接请求服务器的文件路径地址,而这个服务器文件路径就会暴露出来。处于安全性考虑在预览请求时不再返回地址,改为通过调用普通接口,而是统一返回流(word,pdf)或者base64(jpg,png...)。.前端再进行解析并实现在线预览.

此时遇到第一个问题:

        这个请求是在插件中进行的无法携带项目中封装的各类请求头信息(token..等)。翻看pdf.js源码及网上总结.发现一个底层方法 

pdf.createLoadingTask();

        该方法可传一个对象作为参数,对象内可以添加url(所请求的接口),headers(请求头信息)等.... .有了这个方法就好处理了.

        最后在将该方法当做变量赋值给pdf的src.大功告成.

        最后再补充一些 : @loaded="docLoaded" @page-loaded ="pageLoaded" 这两个方法为加载预览文件时的loading事件,


最后引一波示例,

import pdf from 'vue-pdf'

var headers = {

    'Authorization': 'Bearer SOME_TOKEN',

    'x-ipp-device-uuid': 'SOME_UUID',

    'x-ipp-client': 'SOME_ID',

    'x-ipp-client-version': 'SOME_VERSION'

};

var loadingTask = pdf.createLoadingTask({

    url:'https://cdn.mozilla.net/pdfjs/tracemonkey.pdf',

    httpHeaders:headers

});

export default {

components: { pdf },

data() {

return {

    src: loadingTask,

    numPages: undefined,

} },

mounted() {

        this.src.then(pdf => { this.numPages = pdf.numPages; });

} }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,054评论 3 119
  • 俗话说:“有人的地方就有故事。”有小朋友的地方,故事就更多了。说说上周户外读经活动中发生在小朋友们之间的关于争执的...
    上海雯雯妈M6阅读 2,812评论 0 0
  • 不是不能看见,是不想看见。 摘下眼镜,至少能看不清 。其实有时候看不清也挺好的,至少会看不见,不想看见的人,不想看见的事
    把美好锁进高一12阅读 2,662评论 0 0
  • 这是奥威尔的小说,我在很长的时间内只听说过他的《动物庄园》,这本《1984》是在妻子的书架里翻看到的一本,让我惊喜...
    Tony_00阅读 1,670评论 0 0
  • 一起度过的那美好的青春 白云映衬了蓝天 微风吹走了白云
    Sty兮城阅读 1,684评论 0 1

友情链接更多精彩内容