js 模拟ajax请求下载文件

该文章介绍了一种前端实现文件下载的方法,通过FetchAPI获取服务器文件的二进制数据,利用Blob对象创建文件,然后用a标签触发下载并实现文件的重命名功能。这种方法支持图片、视频和各种文件类型,同时也处理了跨域请求的问题。
摘要由CSDN通过智能技术生成


场景

需求要根据服务器文件地址,在前端进行文件下载并重命名,支持图片、视频、文件

实现思路

1、在前端使用 Fetch 获取资源的接口,将文件地址转换完整的二进制数据,然后创建页面元素标签,下载文件

/**
 * 根据文件路径下载文件,并重命名
 * @param filePath 服务器文件路径
 * @param fileName  重命名                                                                                                                                     11111
 */
function downLoadFile(filePath,fileName) {
    // fetch 获取资源的接口(包括跨域请求)
    //response.blob() 返回一个完整的二进制数据
    fetch(filePath).then((response) => response.blob())
        .then((res) =>{
            var blob = new Blob([res])
            var link = document.createElement('a');//创建a标签
            link.href = window.URL.createObjectURL(blob);//获得一个http格式的url路径
            link.download = fileName;//下载文件 并重命名
            link.click();
    })
}

实现效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值