通过javascript下载文件时设置文件名

CJe*_*CJe 5 javascript jquery download

我接管了以下代码段:

            $.ajax({
                contentType: 'application/json; charset=utf-8',
                type: 'POST',
                url: '/api/generalapi/generatecsv',
                data: data,
                success: function (response) {
                    window.open("data:text/csv;base64," + response, '', '');
                }
            });
Run Code Online (Sandbox Code Playgroud)

我试过添加

filename=orders.csv
Run Code Online (Sandbox Code Playgroud)

到 window.open 但文件仍然总是以“下载”的形式出现。没有扩展或任何东西。

有没有办法使用上面的代码控制文件名?

Tud*_*tin 1

尝试这样的事情:

function saveContent(fileContents, fileName)
{
    var link = document.createElement('a');
    link.download = fileName;
    link.href = 'data:,' + fileContents;
    link.click();
}

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        type: 'POST',
        url: '/api/generalapi/generatecsv',
        data: data,
        success: function (response) {
            saveContent("text/csv;base64," + response, 'orders.csv');
        }
    });
Run Code Online (Sandbox Code Playgroud)

关键部分是link.download = fileName;,它将 HTML5download属性添加到动态创建的用于下载的链接中。