博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
koa中上传文件到阿里云oss实现点击在线预览和下载
阅读量:6206 次
发布时间:2019-06-21

本文共 1394 字,大约阅读时间需要 4 分钟。

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

跳转一个新的页面,里面放一个iframe标签,或者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])

 

转载于:https://www.cnblogs.com/beileixinqing/p/9161486.html

你可能感兴趣的文章
AskoziaPBX 安装
查看>>
Tutorial for adding a library project as git submodule and then using it as a studio Module
查看>>
crontab + mysqldump 解决每天定时自动备份MySQL数据库
查看>>
metasploit扫描vsftp服务器root权限
查看>>
bzoj 3489: A simple rmq problem
查看>>
linux的grub的背景颜色
查看>>
计算器代码
查看>>
我的友情链接
查看>>
c# Linq Where 抛出异常 导致 程序崩溃
查看>>
Excel技巧
查看>>
Windows 7无法休眠却自动关机?微软推出补丁
查看>>
优化MyEclipse编译速度慢的问题、build、project clean 慢
查看>>
我的友情链接
查看>>
RHEL6 yum配置
查看>>
Http协议状态码
查看>>
Skip List(跳跃表)原理详解与实现
查看>>
Linux报告生成器工具awk
查看>>
Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解决方法
查看>>
中国首款面向企业用户的“可视化呼叫中心(集团电话)系统”正式免费
查看>>
linux下磁盘配额(quota)完全实施方案
查看>>