Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скачивание файла (https://javascript.ru/forum/misc/64833-skachivanie-fajjla.html)

tai 08.09.2016 11:07

Скачивание файла
 
Добрый день!

Мы отправляем запрос на сайте и получаем ответ. Этот ответ нужно сохранить в файл и скачать. Сам ответ приходит в base64. Сохранить нужно в zip-архиве

<button type="button" class="btn btn-primary" onClick="saveUploadList()">Выгрузить
</button>


var link = document.createElement('a');
link.setAttribute('href','data:application/zip;base64,' + Base64._utf8_decode(data));
link.setAttribute('download','list.zip');
onload = link.click();


Не скачиваются файлы в mozilla firefox. В хроме и яндексе работает.
В чем может быть дело? Может быть не тот mime-тип? Сейчас используется data:application/zip




Тоже самое и для текстовых фалов. мозила не скачивает

Пробовал поставить готовую ссылку в html

<a download="file_downloaded_via_data_URL.txt"
           href="data:text/plain;base64,текст_в_base64">
            Download text file
        </a>


В этом случае мозила скачала файл. При этом для zip это не сработало

tai 08.09.2016 11:25

Если писать напрямую в html, то надо было прописать
data:application/zip,application/octet-stream;

Но вот почему не отрабатывает через js-события

tai 08.09.2016 11:51

Цитата:

Сообщение от tai (Сообщение 427999)
Если писать напрямую в html, то надо было прописать
data:application/zip,application/octet-stream;

Но вот почему не отрабатывает через js-события

Тут ошибся: файл скачивается, но не открывается. А если просто использовать application/zip, то выводит "Ошибка сети"

tai 08.09.2016 13:06

Так выдает "Ошибка сети" при скачивании (в хроме)
В мозиле также ничего не происходит

laimas 08.09.2016 13:27

tai,
а нормально отдать файл сервером, что никак?

tai 08.09.2016 14:04

нет. никак

laimas 08.09.2016 14:32

Цитата:

Сообщение от tai
нет. никак

Странно.

tai 09.09.2016 08:07

размер может/должен быть любым
архив на котором проверяю - 500 байт

tai 09.09.2016 11:55

1. почему гугл хром это ограничение игнорирует?
2. подскажите, есть какой-нибудь другой способ скачивать файлы (при получении ответа (ответ - строка в base64) нужно сформировать и скачать файл)?

laimas 09.09.2016 19:20

Цитата:

Сообщение от tai
подскажите, есть какой-нибудь другой способ скачивать файлы

К какому серверу запрос с которого эти данные приходят - к своему или стороннему? Если к своему, то зачем эти грабли. Если к стороннему, то можно сделать через свой сервер.


Часовой пояс GMT +3, время: 03:27.