• koa中上传文件到阿里云oss实现点击在线预览和下载


    比较好的在线预览的方法:

    跳转一个新的页面,里面放一个iframe标签,或者object标签

    <iframe src="xxx"></iframe>
    <object data="xxx"></object>

    但是这两个标签也有限制,有些可以直接打开预览,有些则直接下载,具体总结如下:

    object:
    ppt不支持预览,直接下载
    doc不支持预览,直接下载
    txt不支持预览,直接下载
    pdf支持打开预览

    图片支持预览,图片放大

    iframe :
    txt、图片、pdf可直接打开预览
    ppt不支持预览,直接下载
    xls不支持预览,直接下载
    doc不支持预览,直接下载

    所以关于预览的功能实现:可以引用 microsoft的office自带的浏览器预览功能。

    这个功能目前支持ppt/doc/xls 、docx /pptx/xlsx

    不支持csv/图片/txt/pdf

    let fileext=(result.split("/")[result.split("/").length-1]).split(".")[1];
    let preUrl='';          if(fileext==="doc"||fileext==='ppt'||fileext==='xls'||fileext==="docx"||fileext==='pptx'||fileext==='xlsx'){                       preUrl="https://view.officeapps.live.com/op/view.aspx?src="+encodeURIComponent(result)
    }else{
             preUrl=result
     }
    $(".fileName a:first-child").attr("href","/pre?path="+preUrl);

    这样最终使用的时候,当后缀为ppt/doc/xls 、docx /pptx/xlsx这些的时候直接跳转到office预览的链接,在src后面加文件url就可以,

    office预览链接:

    https://view.officeapps.live.com/op/view.aspx?src="+encodeURIComponent(result) //后面加的是要跳转的链接

    其他格式的使用iframe直接打开即可。

    关于下载的问题,目前没有很好的解决办法,a标签的download属性经过测试只支持路径为相对路径的,而不支持直接放一个http://这样的url的。如果大家有好的办法,希望大家多多交流!

    koa2中可以更改头部让链接变为直接下载的,但是不能更改要跳转的链接,只能是自己实现的路由,并且如果是跳转到自己的路由中,写iframe标签,iframe链接自己要下载的链接,下载下来的其实是包括ifram标签的所有代码而已。不能直接打开文件。

    修改头部方法如下:

    ctx.type = 'application/octet-stream'
    ctx.set('Content-Disposition','attachment;filename='+ctx.request.query.path.split('/')[ctx.request.query.path.split('/').length-1])
  • 相关阅读:
    设置和查看时间
    通过linux ssh远程登录另一台Linux,无需密码,用证书验证
    openssl生成自签名证书
    技术集锦
    centos系统安装中文字体几种方法
    集群中几种session同步解决方案的比较
    leetcode 88. C++ 合并两个有序数组
    CycleGAN --- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
    剑指offer---二叉树的深度
    C++基础(2)
  • 原文地址:https://www.cnblogs.com/beileixinqing/p/9161486.html
Copyright © 2020-2023  润新知