Я пытаюсь загрузить файл, используя 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?