Загрузка именованного большого двоичного объекта с JavaScript без создания скрытого элемента DOM - PullRequest
0 голосов
/ 30 мая 2020

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

Я нашел этот фрагмент, который почти работает: он позволяет мне загрузить файл, но присваивает ему сгенерированное имя. Добавление опции Content-Disposition в заголовок работает для части fetch, но позже игнорируется с blob.

const options = {
    headers: {
        "Content-Disposition": 'attachment; filename="report.pdf"'
    }
}
function downloadPdf() {
    fetch("./report.pdf", options)
        .then(res => res.blob())
        .then(blob => {
            let file = window.URL.createObjectURL(blob);
            window.location.assign(file);
        });
}
downloadButton.addEventListener("click", downloadPdf, false);

Как я могу передать имя файла из заголовка Content-Disposition в создал blob?

...