当前位置: 首页 > 知识库问答 >
问题:

Javascript:设置要下载的文件名

蒙勇
2023-03-14

我正在使用一个插件从一个表生成一个csv文件,该文件是用“下载”文件名下载的,我如何更改文件名,例如作为dowload。csv

var csv = $("#table").table2CSV({delivery:'download'});
window.location.href = 'data:text/csv;charset=UTF-8,'+ encodeURIComponent(csv);

共有1个答案

萧晔
2023-03-14

我编写了一个工具,您可以使用自定义文件名将文件保存到本地机器的下载文件夹中,如果在客户端机器上可能的话。

在撰写本文时,您需要chrome、firefox或IE10来实现特定的功能,但如果这是所有可用的工具,那么这个工具会退回到一个未命名的下载,因为有东西总比没有好。。。

供您使用:

download(csv, "dowload.csv", "text/csv");

还有魔法密码:

function download(strData, strFileName, strMimeType) {
    var D = document,
        a = D.createElement("a");
        strMimeType= strMimeType || "application/octet-stream";


    if (navigator.msSaveBlob) { // IE10
        return navigator.msSaveBlob(new Blob([strData], {type: strMimeType}), strFileName);
    } /* end if(navigator.msSaveBlob) */


    if ('download' in a) { //html5 A[download]
        a.href = "data:" + strMimeType + "," + encodeURIComponent(strData);
        a.setAttribute("download", strFileName);
        a.innerHTML = "downloading...";
        D.body.appendChild(a);
        setTimeout(function() {
            a.click();
            D.body.removeChild(a);
        }, 66);
        return true;
    } /* end if('download' in a) */


    //do iframe dataURL download (old ch+FF):
    var f = D.createElement("iframe");
    D.body.appendChild(f);
    f.src = "data:" +  strMimeType   + "," + encodeURIComponent(strData);

    setTimeout(function() {
        D.body.removeChild(f);
    }, 333);
    return true;
} /* end download() */

更新:增加了抗未来的IE程序

更新2:在GitHub上签出包含dataURL和Blob支持的改进版本。

 类似资料:
  • 我试图获取和下载文件从服务器本地文件夹到客户端。但当我尝试下载时(也是下载操作成功),下载文件的名称被自动设置为动作名称。如何更改下载的文件名? MyController: 客户端(查看脚本): 当我点击下载操作是okey,但下载的文件名是MyActionDownload.docx,我想更改文件名。

  • 问题内容: 但是对于大文件〜300mb-600mb,这些解决方案将失败。我在最后一行得到OutOfMemoryException: 我的天真假设是IOUtils甚至可以处理大文件,但这显然没有发生。有什么方法可以在下载进行时将文件拆分为多个块?文件通常约为300-600mb。并发下载的最大数量估计为10。 简单的方法是将文件链接为Web服务器目录中的静态内容,但我们希望在Spring应用程序中尝试

  • 问题内容: 我在这里指定了非常相似的要求。 我需要让用户的浏览器在以下情况下手动开始下载 但是我无法使用该方法,因为它将当前页面内容替换为您尝试下载的文件。 相反,我想在新窗口/选项卡中打开下载。这怎么可能? 问题答案: 使用不可见的: 要强制浏览器下载本来可以呈现的文件(例如HTML或文本文件),则需要服务器将文件的MIME类型设置为无意义的值,例如或另外,用于任意二进制数据。 如果只想在新标签

  • 本文向大家介绍php下载文件超时时间的设置方法,包括了php下载文件超时时间的设置方法的使用技巧和注意事项,需要的朋友参考一下 使用curl 可以使用curl自己实现一个curl_file_get_contents函数 超时的错误输出类似下边这样 Curl error: Operation timed out after 991 milliseconds with 3706978 out of 1

  • Android SDK 要求 Min Sdk Version - 使用 Glide 需要 min SDK 版本 API 14 (Ice Cream Sandwich) 或更高。 Compile Sdk Version - Glide 必须使用 API 27 (Oreo MR1) 或更高版本的 SDK 来编译。 Support Library Version - Glide 使用的支持库版本为 27

  • 问题内容: 假设我的网站上有文件下载链接。 单击这些链接后,会将AJAX请求发送到服务器,该请求返回带有文件位置的URL。 我想做的是指示响应返回时,浏览器直接下载文件。有便携式的方法吗? 问题答案: 试试这个库https://github.com/PixelsCommander/Download-File- JS ,它比以前描述的所有解决方案都更现代,因为它使用“下载”属性和方法组合来带来最佳体