美文网首页
如何阻止通过下载目录里的地址下载文件

如何阻止通过下载目录里的地址下载文件

作者: LingSun | 来源:发表于2022-03-08 10:36 被阅读0次
场景:在日常开发中我们会遇到通过创建a标签来下载文件,代码如下:
            var xhr = new XMLHttpRequest();
            xhr.open('GET',  url, true);
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            xhr.onload = function() {
                if(this.status==200){
                    var reader = new FileReader();
                    reader.readAsDataURL(xhr.response);
                    reader.onload = function(e){
                        const a = document.createElement('a');
                        a.download = '文件名.文件后缀';
                        a.href = e.target.result;
                        document.body.appendChild(a);
                        a.click();
                        document.body.removeChild(a);
                    };
                }            
            };
            xhr.send();

这个时候会在下载目录里记录下载的url,拿到这个url可以在任何地方下载,如果此时的文件有下载权限的话,为了解决这个问题,可以稍加修改

            var xhr = new XMLHttpRequest();
            xhr.open('GET',url, true);

            xhr.responseType = 'blob';  // 需要将responseType值设置为'bolb'
            xhr.setRequestHeader('token', token); 
            xhr.setRequestHeader('Secure-Token', hex_md5(secureToken));

            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            xhr.onload = function() {
                if(this.status==200){
                    reader.onload = function(e){

                        //  window.URL.createObjectURL(new Blob([xhr.response]))
                        var url = window.URL.createObjectURL(new Blob([xhr.response]));

                        var a = document.createElement('a');
                        a.download = '文件名.文件后缀';
                        a.href = url;
                        document.body.appendChild(a);
                        a.click();
                        document.body.removeChild(a);
                    };
                }            
            };
            xhr.send();

相关文章

  • 如何阻止通过下载目录里的地址下载文件

    场景:在日常开发中我们会遇到通过创建a标签来下载文件,代码如下: 这个时候会在下载目录里记录下载的url,拿到这个...

  • 小问题合集

    如何从github上下载单个文件?打开github上文件地址,点击Raw获取真实文件地址,然后通过curl命令下载...

  • IK分词

    git地址 下载安装目录(plugins下创建ik目录) 下载地址(找到相应的版本下载) 解压下载的文件 重启el...

  • vue中使用pdf.js

    下载依赖文件 下载地址WX20190322-180204.png 将下载的文件拷贝到 static 目录下 修...

  • Tomcat 下载配置(Mac)

    下载 下载地址:http://tomcat.apache.org/下载解压后将文件夹放到其他目录(常用目录:/Li...

  • windows 下MySQL绿色(ZIP)版安装

    1.下载 下载mysql zip文件,到你要安装的目录 历史版本下载地址 2.解压配置 解压会发现根目录的配置文件...

  • IDEA激活方法(可激活至2100年)

    1. 下载相关文件 下载地址:下载 2. 添加配置 打开IDEA安装目录下的bin目录,例如:D:\Program...

  • cento7 中安装tomcat8.5

    1 下载 tomcat8.5 下载gz文件 下载地址,之后将gz文件移动至目录/usr/local 使用cd /u...

  • JS实现点击按钮下载文件

    下载项目中的文件 目录 1.下载项目中的文件 2.发送请求地址下载文件 1.get请求 2.post请求 1.下载...

  • MySql下载和安装

    1. 下载MySql 下载地址:官网下载 2. 安装MySql和启动 打开下载文件解压到指定文件目录(我这里解压目...

网友评论

      本文标题:如何阻止通过下载目录里的地址下载文件

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