js 通过url 转blob下载文件

<!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>

    <body>
        <button onclick="xhrequest()">下载</button>
        <script>
            let downloadBlob = (blob, fileName) => {
                try {
                    const href = window.URL.createObjectURL(blob); //创建下载的链接
                    if (window.navigator.msSaveBlob) {
                        window.navigator.msSaveBlob(blob, fileName);
                    } else {
                        // 谷歌浏览器 创建a标签 添加download属性下载
                        const downloadElement = document.createElement("a");
                        downloadElement.href = href;
                        downloadElement.target = "_blank";
                        downloadElement.download = fileName;
                        document.body.appendChild(downloadElement);
                        downloadElement.click(); // 点击下载
                        document.body.removeChild(downloadElement); // 下载完成移除元素
                        window.URL.revokeObjectURL(href); // 释放掉blob对象
                    }
                } catch (e) {
                    console.log("下载失败");
                }
            };

            async function xhrequest(callback) {
                let url =
                    "https://1252524126.vod2.myqcloud.com/2919df88vodtranscq1252524126/edee603b3701925925677178599/v.f1010.mp3";
                let data = await fetch(url)
                    .then((response) => response.blob())
                    .then((res) => {
                        console.log(res);
                        let blod = new Blob([res]);
                        let name = "1.mp3";
                        downloadBlob(blod, name);
                    });
                return data;
            }
        </script>
    </body>

    </html>
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐