前端下载pdf文档(支持doc/excel/ppt/pdf/jpg、png等)

本文介绍了前端如何处理后台返回的文档链接实现下载,包括使用a标签和download.js库,详细解析了这两种方法的工作原理、优缺点,并指出在面对中文文件名及文件流下载时的解决方案。
摘要由CSDN通过智能技术生成

一、前端有后台返回的各种文档在服务器上的链接地址,实现点击下载文件

1.以a链接点击下载文件列表

<a v-for=“item in tips.filemaintains” :href="${item.filepath}" :download="${item.filename}" @click=“emitEvent(item.event, item)”>{ {item.filename}}

使用a标签的download属性来下载文档,其中pdf和图片,谷歌浏览器默认打开,因为有内置pdf浏览器,到不到点击就下载的效果

2.download.js
地址:
https://www.npmjs.com/package/downloadjs
download.js 使用 当只有文件的链接地址时,只需传入地址一个参数,可以实现文件下载(包括pdf和图片)。
原理在于:
download.js是其他方法的集大成者。为了解决最为让人头大的图片自动打开的问题,脚本内通过创建xhr请求,把响应类型改成blob,让浏览器无法识别从而避免直接打开,之后再把下载的到的blob文件重新拼装成我们需要的文件。针对不同浏览器的兼容性,使用了a标签下载,window.open等方法作为降级方案。
弊端在于:
<1>未能成功修改需要下载的文件名称,也就是下载下来的文件名称只能是地址里的名称,不能修改。
注意不支持中文路径和文件名的下载

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值