js不打开直接下载txt文件

Posted 微笑范特西

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js不打开直接下载txt文件相关的知识,希望对你有一定的参考价值。

    /**
     * 获取页面文件名
     * @param url 文件url
     */
    function downloadUrlFile(url) {
        url = url.replace(/\/g, ‘/‘);
        const xhr = new XMLHttpRequest();
        xhr.open(‘GET‘, url, true);
        xhr.responseType = ‘blob‘;
        //xhr.setRequestHeader(‘Authorization‘, ‘Basic a2VybWl0Omtlcm1pdA==‘);
        xhr.onload = () => {
            if (xhr.status === 200) {
                // 获取文件blob数据并保存
                var fileName = getFileName(url);
                saveAs(xhr.response, fileName);
            }
        };

        xhr.send();
    }

    /**
     * URL方式保存文件到本地
     * @param data 文件的blob数据
     * @param name 文件名
     */
    function saveAs(data, name) {
        var urlObject = window.URL || window.webkitURL || window;
        var export_blob = new Blob([data]);
        var save_link = document.createElementNS(‘http://www.w3.org/1999/xhtml‘, ‘a‘)
        save_link.href = urlObject.createObjectURL(export_blob);
        save_link.download = name;
        save_link.click();
    }

    /**
     * 根据文件url获取文件名
     * @param url 文件url
     */
    function getFileName(url) {
        var num = url.lastIndexOf(‘/‘) + 1
        var fileName = url.substring(num)
            //把参数和文件名分割开
        fileName = decodeURI(fileName.split("?")[0]);
        return fileName;
    }

  下载文件时直接调用:

downloadUrlFile(‘下载地址.txt‘);

  

以上是关于js不打开直接下载txt文件的主要内容,如果未能解决你的问题,请参考以下文章

请问找到了js代码后应该如何下载

从linux下载txt到windows,怎么在直接打开文本文件的时候实现换行?

前端下载txt/图片文件时,不弹窗下载,而是直接打开的问题

点击链接不在浏览器打开而是弹出下载对话框

javascript window.location.href下载问题

php实现文件下载代码