美文网首页
blob对象实现文件下载

blob对象实现文件下载

作者: jesse28 | 来源:发表于2021-02-03 17:46 被阅读0次

    打印截图:


    image.png
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <!--
            Blob 是什么?
            Blob(Binary Large Object)表示二进制类型的大对象。在数据库管理系统中,将二进制数据存储起来。
    
            Blob使用场景
              分片上传
              从互联网下载数据
              Blob用作URL
              Blob 转化为 Base64
              图片压缩
              生成pdf
    
        -->
        <!-- <a download
            href="http://n.sinaimg.cn/default/1_img/upload/3933d981/738/w930h608/20210202/2bd7-kiksqxh7915093.jpg">下载</a> -->
        <!---这边点击下载并不会成功,只是跳转到这个页面的地址而已,原因是因为他们跨域了-->
            <img src="" alt="">
        <script>
            function downLoad(url) {
                const xhr = new XMLHttpRequest(); //在我们js要获取服务端的数据,我们应该用到ajax
                xhr.open("get", url); //规定请求的类型、URL 服务器的地址
                xhr.responseType = 'blob'; //响应的数据类型是二进制,磁盘存放的数据就是二进制
                xhr.send(); //将请求发送到服务器。
                xhr.onload = function(){
                    const fileBlob = xhr.response;
                    const fileUrl = URL.createObjectURL(fileBlob); //将blob转成url地址
                    console.log(fileBlob)//打印出����乱码
                    console.log(fileUrl)
    
                    //document.querySelector('img').setAttribute('src',fileUrl) //设置src的属性
                    const elementA = document.createElement('a');
                    elementA.setAttribute('href',fileUrl);
                    elementA.innerHTML = "下载图片"
                    elementA.setAttribute("downLoad","");
                    document.body.appendChild(elementA)
                }//发送出去我们需要监听,我们要监听是否加载完毕
            }
    
            let imgUrl = "http://n.sinaimg.cn/default/1_img/upload/3933d981/738/w930h608/20210202/2bd7-kiksqxh7915093.jpg";
            downLoad(imgUrl)
        </script>
    </body>
    
    </html>
    

    相关文章

      网友评论

          本文标题:blob对象实现文件下载

          本文链接:https://www.haomeiwen.com/subject/gdkmtltx.html