vue-pdf.js 在线预览问题,第1张

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

此时遇到第一个问题:

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

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

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

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

最后引一波示例,

(1)我们在本地新建一个。htaccess的文本文件,注意。htaccess是这个文本文件的名称,所以文本文件的全称是:。htaccesstxt

(2)在该文本文件中写入如下代码:

复制代码

1 # 将 RewriteEngine 模式打开

2 RewriteEngine On

3

4 RewiteBase /

5

6 RewriteCond %{HTTP_HOST} ^(www\)?example\com$ [NC]

7 RewriteCond %{REQUEST_URI} !^/bbs/

8 RewriteCond %{REQUEST_FILENAME} !-f

9 RewriteCond %{REQUEST_FILENAME} !-d

10 RewriteRule ^(。)$ bbs/$1

11 # 没有输入文件名的默认到到首页

12 RewriteCond %{HTTP_HOST} ^(www\)?example\com$ [NC]

13 RewriteRule ^(/)?$ bbs/forumphp [L]

复制代码

(3)将该文本文件的扩展名。txt去掉,使用ftp上传工具上传到网站的根目录(www/web目录),注意,这里一定要是网站的根目录。我们在做seo优化设置里面的URL静态化也需要写这个文件,但是那个。htaccess文件就要放在bbs目录里面。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » vue-pdf.js 在线预览问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情