求问 PPT 文件上传后如何在 WEB 端直接打开查看,不下载! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
minuo0day
V2EX    程序员

求问 PPT 文件上传后如何在 WEB 端直接打开查看,不下载!

  •  
  •   minuo0day
    minuo0318 2022-03-31 20:03:28 +08:00 3905 次点击
    这是一个创建于 1373 天前的主题,其中的信息可能已经有所发展或是发生改变。

    PHP 的后台,VUE 的前端,在后台上传 doc\ppt\pdf 的文件,问题是“目前只解决了 PDF 的新标签页打开的问题,但是 DOC 和 PPT 前端 WEB 点击只能下载,不能直接再标签页内直接打开吗?” 跪求大神指点迷津~

    第 1 条附言    2022-04-01 14:41:45 +08:00
    最好在同一个标签页打开,不要跳转新的标签页
    34 条回复    2022-04-07 15:40:39 +08:00
    WinkeyLin
        1
    WinkeyLin  
       2022-03-31 20:08:50 +08:00   1
    调用微软的 Office 在线预览服务: http://view.officeapps.live.com/op/view.aspx?src={文件地址}
    minuo0day
        2
    minuo0day  
    OP
       2022-03-31 20:23:37 +08:00
    @WinkeyLin 文件地址在阿里云的 OSS ,刚才试了 2 个,有点慢,不过确实成功了一次,另外一次报错了,查看器这个只能用 OFFICE 官方的么?下载的字眼太明显,客户不太想用户下载
    Coolxiaobai
        3
    Coolxiaobai  
       2022-03-31 21:27:18 +08:00
    web 服务器是 nginx 么,可以强制配置返回浏览器类型为 text/html 来处理
    crystom
        4
    crystom  
       2022-03-31 21:29:01 +08:00
    可用转 pdf 再预览,不过也不保证效果,蹲下面有没有更好的方案
    Quarter
        5
    Quarter  
       2022-03-31 21:33:37 +08:00 via iPhone
    onlyoffice 试试呢
    Coolxiaobai
        6
    Coolxiaobai  
       2022-03-31 21:42:08 +08:00
    https://sm.ms/image/CBek3tK6PZuFUnm
    浏览器会依据这个返回的 header 处理资源吧,我理解,只要把这个返回的处理下就可以,处理成流就变成下载,处理成 application/pdf 就可以直接看
    Howlaind
        7
    Howlaind  
       2022-03-31 21:51:43 +08:00 via Android
    Collabora Online
    rodrick
        8
    rodrick  
       2022-03-31 22:46:56 +08:00
    office 在线预览感觉市面上就没几个特别完美的解决方案
    sumulige
        9
    sumulige  
       2022-03-31 23:02:43 +08:00
    一般都是 open office 转 pdf
    ZhanGuang01
        10
    ZhanGuang01  
       2022-03-31 23:21:00 +08:00
    chrome 好像不支持直接预览 ppt ,需要安装扩展才可以
    rekulas
        11
    rekulas  
       2022-03-31 23:35:05 +08:00
    最接近原生的方法就是直接对接原生,用 saas 的思想去开发
    例如类似 https://neverinstall.com/ 的技术
    这是我在网页上操作远程 brave 浏览器的视频,完全一模一样
    https://streamja.com/q5WJ1

    当然,这个属于额外功能,跟客户说要加钱
    Osk
        12
    Osk  
       2022-04-01 00:19:06 +08:00
    服务器上存原 word/ppt 方案:
    微软的 Office Server:

    Only Office:


    - 免费, 但限制 20 个连接
    buliugu
        13
    buliugu  
       2022-04-01 00:28:18 +08:00
    免费方案 kkfileview
    iyaozhen
        14
    iyaozhen  
       2022-04-01 00:28:24 +08:00
    你这叫在线预览服务

    国内几乎只能选择 WPS ,找他们掏钱吧。
    Osk
        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 时特地了解过.
    jack80342
        16
    jack80342  
       2022-04-01 00:30:45 +08:00 via iPhone
    minuo0day
        17
    minuo0day  
    OP
       2022-04-01 08:56:20 +08:00
    @Quarter 有限制,之前考虑过,客户文件量比较大
    minuo0day
        18
    minuo0day  
    OP
       2022-04-01 08:57:56 +08:00
    @Coolxiaobai 同样的,免费版有广告,而且每个月的上传量比较大,客户想白嫖,我们也没有收这个付费的钱
    minuo0day
        19
    minuo0day  
    OP
       2022-04-01 08:59:57 +08:00
    @rekulas 客户想白嫖,加钱已经无望了,当时的需求清单也写了“支持上传文档课件进行预览”,但没有写清只能限制 pdf ,以后可得长点心,功能清单这玩意还得写的详细一些
    minuo0day
        20
    minuo0day  
    OP
       2022-04-01 09:00:56 +08:00
    @Osk 感谢大神,您这些方案都有尝试,文件数量是个问题,费用也是个大问题
    minuo0day
        21
    minuo0day  
    OP
       2022-04-01 09:01:22 +08:00
    @iyaozhen 尝试问过了,不太行的通
    minuo0day
        22
    minuo0day  
    OP
       2022-04-01 09:03:46 +08:00
    @buliugu
    @jack80342 这是个新大陆,我去研究下
    seakingii
        23
    seakingii  
       2022-04-01 10:32:43 +08:00
    你说了,需求只是"预览",我的理解是,可以在上传文件后直接生成一个对应的 PDF 文件或者一堆的 JPEG 图片,供预览即可.

    OFFICE 文件直接 WEB 打开要效果好,一般都是收费的.
    minuo0day
        24
    minuo0day  
    OP
       2022-04-01 14:40:12 +08:00
    @seakingii 文件数量比较多,这两种方案是最先试的,ppt 到 pdf 会错乱,ppt 到图片数量太大,实现没问题,效果很堪忧。
    minuo0day
        25
    minuo0day  
    OP
       2022-04-01 14:43:35 +08:00
    @Coolxiaobai 直接转 PDF 会将 PPT 中的课件样式错乱
    iyaozhen
        26
    iyaozhen  
       2022-04-01 15:52:53 +08:00
    @minuo0day 为啥?钱的原因?之前有业务做过这块,要预览还得 WPS ,要协同编辑最好还是微软,但都贵
    seakingii
        27
    seakingii  
       2022-04-01 16:23:07 +08:00
    @minuo0day

    图片数量太大?这算什么问题?你是想什么成本 都不付出么?
    davin
        28
    davin  
       2022-04-01 16:30:12 +08:00
    建议分成两个链接,一个用来下载,一个用来显示,用来显示的链接需要转换下格式。既然都用人家的 OSS 了,索性也直接用别人的文档格式转换功能吧,可能是付费的。其他的服务不能确保是否稳定或者有法律风险呢!
    Osk
        29
    Osk  
       2022-04-01 22:54:21 +08:00
    @minuo0day 没救了, 收拾东西跑路吧. /狗头 /

    ppt 转 pdf 是用的哪个方案呢, 似乎 wps 和 office 的转换效果还算可以啊
    minuo0day
        30
    minuo0day  
    OP
       2022-04-06 09:13:18 +08:00
    @seakingii 不是的,是文档数量多,转成图片后图片数量也就非常多了,这样的话,存储也得增加,前端一直在调用图片也会对流畅度造成困扰
    minuo0day
        31
    minuo0day  
    OP
       2022-04-06 09:13:53 +08:00
    @Osk [早就想这么干了] ,不行啊,还是得坚守
    seakingii
        32
    seakingii  
       2022-04-06 17:05:24 +08:00
    @minuo0day 就算你不直接转成图片,你用其它的第三方的预览服务,也会转成类似图片的(放在临时目录里).所以说这个空间和流量你是省不了的.

    如果不预先生成缓存起来,每次打开文件才去解析,然后通过某种方式(比如直接操作画布)显示出内容,那对服务器的 CPU 之类的压力也是承担不起的.

    前端一直调用图片对流畅度造成困扰?这是什么意思?客户端每次不需要加载太多图片,一次要加载的前后几页,图片用 CDN 加速,做压缩.
    minuo0day
        33
    minuo0day  
    OP
       2022-04-07 09:13:12 +08:00
    @seakingii 不是我想省钱,服务器在甲方手里,甲方抠,一直压着我们想解决方法,你这个方法我们是最早提出的方案,图片我们用 redis 做的缓存,被甲方否了。
    seakingii
        34
    seakingii  
       2022-04-07 15:40:39 +08:00
    @minuo0day 对方这限制那限制,又不肯花钱,难了.

    你这样,把所有的方案做个文档,提交给你的领导和对方,让他们选择.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     766 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:18 PVG 05:18 LAX 13:18 JFK 16:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86