Javascript: установить имя файла для загрузки

Я использую плагин для создания файла CSV из таблицы, файл загружается с именем файла "скачать", как я могу изменить имя файла, например, как dowload.csv

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

1 ответ

Я написал инструмент, который можно использовать для сохранения файла в папке загрузок на локальном компьютере с пользовательским именем файла, если это возможно на компьютере клиента.

на момент написания этой статьи вам нужен 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

update2: ознакомьтесь с развитой версией на GitHub, которая включает поддержку dataURL и Blob.

Другие вопросы по тегам