如何阻止通過下載目錄里的地址下載文件

場景:在日常開發(fā)中我們會遇到通過創(chuàng)建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可以在任何地方下載,如果此時的文件有下載權(quán)限的話,為了解決這個問題,可以稍加修改

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

            xhr.responseType = 'blob';  // 需要將responseType值設(shè)置為'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();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容