Измените имя загрузки в javascript - программирование
Подтвердить что ты не робот

Измените имя загрузки в javascript

Если пользователь нажимает на загружаемую ссылку, например

<a href="downloadable.txt">Download</a>

Есть ли способ на стороне клиента (html или javascript) изменить имя файла перед диалогом "Сохранить как"?

4b9b3361

Ответ 1

Нет, вы не можете изменить это со стороны клиента (HTML или javascript). Вам нужно изменить его с сервера. Один из способов - использовать серверную сторону script, которая установит заголовок ответа HTTP Content-Disposition:

Content-Disposition: attachment; filename=somecustomname.txt

Ответ 2

HTML5 предоставляет атрибут a[download], который позволяет переименовать файл. В этом примере загрузится link.txt и переименуйте его something.txt.

​<a download="something.txt" href="link.txt">asdf</a>​​​​​​​​​​​​​​​​​​​​​​​​​​​

Обратите внимание, что это работает только на URL-адресах одного и того же происхождения (т.е. не в разных доменах).

Ответ 3

Вы можете использовать Filesaver.js script, написанный eligrey (Im, использующий angularjs в примере здесь) Вы можете добиться того же в классическом javascript, используя объект XmlHttpRequest

//In your html code , add these : ->
<script src="https://rawgit.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-animate.js"></script>
//In your Javascript:- 

$http({
        url: "url where the file is located",
        method: "GET",
        responseType: "blob"
    }).then(function (response) {

saveAs(response.data,"newfilename.extension");

})