Показать сообщение отдельно
  #1 (permalink)  
Старый 13.09.2014, 15:49
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Как изменить имя скачиваемого файла?
В 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();
Ответить с цитированием