Как изменить имя скачиваемого файла?

В HTML5 есть атрибут download, который позволяет скачать любой файл по ссылке. Только вот поменять имя, скачиваемого файла, не получается.
link.setAttribute("download","new_name"); //не работает

Решил попробовать скачать файл с сервера с помощью объекта XMLHttpRequest level2. Затем вставить полученный blob в атрибут ссылки href. Победа! Теперь файл скачивается с нужным именем. Только вот приходится ждать, пока файл загрузится, и только потом появляется ссылка.
Можно, конечно, добавить индикатор загрузки файла, а затем вызвать событие клик по ссылке. Но мне хотелось бы начать скачивание файла стандартным(браузеровским) методом. Это возможно?
Код на JSFiddle.
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
var blob = this.response;
var link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.setAttribute("download","new_name");
}
xhr.send();
  • Вопрос задан
  • 6232 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Power
См. https://developer.mozilla.org/en-US/docs/Web/HTML/... - там говорится, в том числе, что если сервер присылает имя файла в заголовке "Content-Disposition", то значение атрибута "download" игнорируется. Наверное, это ваш случай; если это так, то для вашей задачи нужно содействие со стороны сервера, который отдаёт файл.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы