download.js问题之文件下载后,内容是url地址

一、问题

在这里插入图片描述

点击下载按钮,实现文件的下载,而不是新建窗口打开文件
用的 download.js 实现,调用时传了三个参数:

// 引用 dowload.js 文件
import  download  from '@/lib/dowload.js'
// 点击 button 时,调用
download(url, name, docType);

这样可以下载文件,文件名也对。
找到下载好的文件,打开后,下载的文件内容和上传的文件内容不对应,所有的内容都编程url地址

二、经过

download.js 三个参数都传,第一个不应该传 url,看官网上,三个都传的话,第一个参数应为包含快速到ba文件内容的Blob、File、String或dataURL.

	官网如何识别 url?传参时,只有一个参数,即:只有url,没有name等参数
 	// 源码片段
 	url = !strFileName && !strMimeType && payload,

考虑到项目上有好多地方调用时都是传的三个参数,换其他方式更费时费力

三、结果

直接改了源码
	// url = !strFileName && !strMimeType && payload 改为
	url = payload,
	// 改完后,js文件就可以进入 if(url && url.length< 2048){ 

四、如果url中有中文的字符串

// 控制台打印 anchor.href 、 url 后会发现,两个String不一样了
// 此处的判断不能通过,导致文件虽然成功下载了,但不能正常打开
if(anchor.href.indexOf(url) !== -1){

我直接选择了注释这个判断,如果有其他方法,欢迎讨论~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值