PHP 的后台,VUE 的前端,在后台上传 doc\ppt\pdf 的文件,问题是“目前只解决了 PDF 的新标签页打开的问题,但是 DOC 和 PPT 前端 WEB 点击只能下载,不能直接再标签页内直接打开吗?” 跪求大神指点迷津~
1
WinkeyLin 2022-03-31 20:08:50 +08:00 1
调用微软的 Office 在线预览服务: http://view.officeapps.live.com/op/view.aspx?src={文件地址}
|
2
minuo0day OP @WinkeyLin 文件地址在阿里云的 OSS ,刚才试了 2 个,有点慢,不过确实成功了一次,另外一次报错了,查看器这个只能用 OFFICE 官方的么?下载的字眼太明显,客户不太想用户下载
|
3
Coolxiaobai 2022-03-31 21:27:18 +08:00
web 服务器是 nginx 么,可以强制配置返回浏览器类型为 text/html 来处理
|
4
crystom 2022-03-31 21:29:01 +08:00
可用转 pdf 再预览,不过也不保证效果,蹲下面有没有更好的方案
|
5
Quarter 2022-03-31 21:33:37 +08:00 via iPhone
onlyoffice 试试呢🥱
|
6
Coolxiaobai 2022-03-31 21:42:08 +08:00
https://sm.ms/image/CBek3tK6PZuFUnm
浏览器会依据这个返回的 header 处理资源吧,我理解,只要把这个返回的处理下就可以,处理成流就变成下载,处理成 application/pdf 就可以直接看 |
7
Howlaind 2022-03-31 21:51:43 +08:00 via Android
Collabora Online
|
8
rodrick 2022-03-31 22:46:56 +08:00
office 在线预览感觉市面上就没几个特别完美的解决方案
|
9
sumulige 2022-03-31 23:02:43 +08:00
一般都是 open office 转 pdf
|
10
ZhanGuang01 2022-03-31 23:21:00 +08:00
chrome 好像不支持直接预览 ppt ,需要安装扩展才可以
|
11
rekulas 2022-03-31 23:35:05 +08:00
最接近原生的方法就是直接对接原生,用 saas 的思想去开发
例如类似 https://neverinstall.com/ 的技术 这是我在网页上操作远程 brave 浏览器的视频,完全一模一样 https://streamja.com/q5WJ1 当然,这个属于额外功能,跟客户说要加钱 |
12
Osk 2022-04-01 00:19:06 +08:00
服务器上存原 word/ppt 方案:
微软的 Office Server: Only Office: - 免费, 但限制 20 个连接 |
13
buliugu 2022-04-01 00:28:18 +08:00
免费方案 kkfileview
|
14
iyaozhen 2022-04-01 00:28:24 +08:00
你这叫在线预览服务
国内几乎只能选择 WPS ,找他们掏钱吧。 |
15
Osk 2022-04-01 00:29:02 +08:00
不好意思发错了:
服务器上存原 word/ppt 方案: 微软的 Office Server: - 需要 Windows Server 和 Office Server 的两重授权, 价格想好哦, 你就可以搭建类似于一楼的那种 Office 在线预览服务了. 看过成品, 似乎是可以没有下载按钮的. Only Office: - 社区版只有 20 个连接被允许. 你需要尝试修改后自己编译 (贼麻烦), 或者买授权. - 中文字体名称问题老问题了. - 文档兼容性尚可. - 似乎也可以控制仅预览, 阻止下载和打印. Collabora Online: 没用过不知道, 但文档兼容性一团糟 (网上评价的). WPS: 没有了解过. 在线预览都有一个大问题: 基本都需要占用不少的服务器资源来支撑 Office 后端. 另一种做法: 将用户的 word/ppt 在后端转换成 pdf 或者图片, 这样就不用浪费资源区搭建 office 后端. Windows 可以使用微软的 office server 生成 pdf, 但不知到有没有这功能. 利用 Office 桌面版 /wps 桌面版的 COM 接口, 来自动化转换为 pdf 格式(不推荐, 处理用户上传的文件容易出现安全风险). Linux 服务器上使用 LibreOffice 来命令行转换为 PDF, 但缺点还是那个: 兼容性堪忧. 没亲自用过, 但折腾 next cloud 时特地了解过. |
16
jack80342 2022-04-01 00:30:45 +08:00 via iPhone
|
18
minuo0day OP @Coolxiaobai 同样的,免费版有广告,而且每个月的上传量比较大,客户想白嫖,我们也没有收这个付费的钱
|
19
minuo0day OP @rekulas 客户想白嫖,加钱已经无望了,当时的需求清单也写了“支持上传文档课件进行预览”,但没有写清只能限制 pdf ,以后可得长点心,功能清单这玩意还得写的详细一些
|
23
seakingii 2022-04-01 10:32:43 +08:00
你说了,需求只是"预览",我的理解是,可以在上传文件后直接生成一个对应的 PDF 文件或者一堆的 JPEG 图片,供预览即可.
OFFICE 文件直接 WEB 打开要效果好,一般都是收费的. |
24
minuo0day OP @seakingii 文件数量比较多,这两种方案是最先试的,ppt 到 pdf 会错乱,ppt 到图片数量太大,实现没问题,效果很堪忧。
|
25
minuo0day OP @Coolxiaobai 直接转 PDF 会将 PPT 中的课件样式错乱
|
28
davin 2022-04-01 16:30:12 +08:00
建议分成两个链接,一个用来下载,一个用来显示,用来显示的链接需要转换下格式。既然都用人家的 OSS 了,索性也直接用别人的文档格式转换功能吧,可能是付费的。其他的服务不能确保是否稳定或者有法律风险呢!
|
29
Osk 2022-04-01 22:54:21 +08:00
|
30
minuo0day OP @seakingii 不是的,是文档数量多,转成图片后图片数量也就非常多了,这样的话,存储也得增加,前端一直在调用图片也会对流畅度造成困扰
|
32
seakingii 2022-04-06 17:05:24 +08:00
@minuo0day 就算你不直接转成图片,你用其它的第三方的预览服务,也会转成类似图片的(放在临时目录里).所以说这个空间和流量你是省不了的.
如果不预先生成缓存起来,每次打开文件才去解析,然后通过某种方式(比如直接操作画布)显示出内容,那对服务器的 CPU 之类的压力也是承担不起的. 前端一直调用图片对流畅度造成困扰?这是什么意思?客户端每次不需要加载太多图片,一次要加载的前后几页,图片用 CDN 加速,做压缩. |
33
minuo0day OP @seakingii 不是我想省钱,服务器在甲方手里,甲方抠,一直压着我们想解决方法,你这个方法我们是最早提出的方案,图片我们用 redis 做的缓存,被甲方否了。
|
34
seakingii 2022-04-07 15:40:39 +08:00
|