吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1012|回复: 11
收起左侧

[求助] 关于pdf预览问题的求助

[复制链接]
Dellevin 发表于 2023-11-3 21:32
32吾爱币
使用场景是我提前用pdfjs搭建了pdf 的预览服务,这样就能在手机电脑上都能预览pdf了,其中pdfjs的服务网址是
http://xxxxxxx/file/viewer.html?file=
但是把,chrome可以预览pdf文件的,这样就可以实现pdf的下载了。
我的目的是设置
http://xxxxxxx/file/viewer.html?file=http://xxxxxxx/report/0000a383cb0e43f498438205711df2fb.pdf

这个是可以预览的

但是单独打开

http://xxxxxxx/report/0000a383cb0e43f498438205711df2fb.pdf

是不可以打开的,无法进行预览

我用的是nginx搭建的服务,请问能如何设置一下呢,我记得是可以的,前几天碰到过类似的场景,是设置域名白名单嘛?希望有大佬可以帮助一下!万分感谢

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

thinkflyer 发表于 2023-11-3 21:56
本帖最后由 thinkflyer 于 2023-11-3 21:58 编辑

这个取决于你xxxx 是别人的还是你的域名, 如果是自己的域名 完全可以单独对这个xxx域名进行限制,只允许 xxx 在自己服务器上打开。 其他ip 全部 deny掉就可以了。

使用  nginx 的 deny allow 指令
 楼主| Dellevin 发表于 2023-11-3 21:59
thinkflyer 发表于 2023-11-3 21:56
这个取决于你xxxx 是别人的还是你的域名, 如果是自己的域名 完全可以单独对这个xxx域名进行限制,只允许 x ...

都是自己的域名,我试过这样的,当我把http://xxxxxxx/report/0000a383cb0e43f498438205711df2fb.pdf
这个域名deny之后
http://xxxxxxx/file/viewer.html?file=http://xxxxxxx/report/0000a383cb0e43f498438205711df2fb.pdf
也无法预览了。。。
thinkflyer 发表于 2023-11-3 22:05
Dellevin 发表于 2023-11-3 21:59
都是自己的域名,我试过这样的,当我把http://xxxxxxx/report/0000a383cb0e43f498438205711df2fb.pdf
这 ...

你可以新建一个二级域名 交 pdf.xxx , 不能和网站域名相同。
或者对report 目录单独限制
location /report {
        root /opt/data/pdf;
        deny all;
        allow 192.168.135.1;

    }
仅供参考
 楼主| Dellevin 发表于 2023-11-3 22:36
thinkflyer 发表于 2023-11-3 22:05
你可以新建一个二级域名 交 pdf.xxx , 不能和网站域名相同。
或者对report 目录单独限制
location /re ...

server{
        listen 80;
        server_name localhost;

        location /file/ {
                add_header Access-Control-Allow-Origin *;
                alias  D:/pdfview/web/;
                index index.html index.html;
        }
        location /ff/ {
                add_header Access-Control-Allow-Origin *;
                alias d:/pdfview/build/;
                index index.html index.html;
        }
        location /build/ {
                add_header Access-Control-Allow-Origin *;
                alias d:/pdfview/build/;
                index index.html index.html;
        }
        location /report/ {
                deny all;
                add_header Access-Control-Allow-Origin *;
                        alias d:/pdf/;
                index index.html index.html;
            }
       
}

我就是这样设置的
http://xxxxxxx/file/viewer.html?file=http://xxxxxxx/report/0000a383cb0e43f498438205711df2fb.pdf
就无法预览了
Dotty 发表于 2023-11-3 22:39
看起来很高级PDF有时候挺方便有时候很难搞
sai609 发表于 2023-11-4 10:18
wps里面由预览pdf的按钮开关
 楼主| Dellevin 发表于 2023-11-4 10:29
sai609 发表于 2023-11-4 10:18
wps里面由预览pdf的按钮开关

我想实现一个网络的在线预览的方式
照在指尖的星光 发表于 2023-11-4 10:48
如果pdf文件不是你的,别人可以把.pdf控制为下载或者预览。
如果.pdf文件是你的,完全没必要搭建pdfjs,宝塔上传的.pdf就能在线预览,如果你想实现下载功能,写一个按钮,点击就保存本网页内容,就是把.pdf下载下来。
vaycore 发表于 2023-11-4 11:22
你这个需求貌似有冲突啊,这个 pdfjs 是前端执行的,预览就必须要下载这个 PDF 文件(禁止访问后,那肯定就无法下载以及预览了)。虽然可通过 Origin 或者 Referer 请求头进一步限制(Origin Nginx配置方式示例:https://blog.csdn.net/qq_33204709/article/details/129232198),但这两个请求头通过发包软件伪造后依然可以下载到 PDF 文件
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表