Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   сохранить файл (https://javascript.ru/forum/misc/39987-sokhranit-fajjl.html)

skrudjmakdak 19.07.2013 22:29

сохранить файл
 
Добрый вечер!

есть файл на сервере и через window.open(url, '_blank'); его надо сохранить, не открыть как файл. можно ли такое реализовать?

dmitriymar 19.07.2013 22:43

Цитата:

Сообщение от skrudjmakdak
есть файл на сервере и через window.open(url, '_blank'); его надо сохранить, не открыть как файл. можно ли такое реализовать?

почитай как сервер отдаёт файлы на загрузку и какие заголовки при этом отдаёт

skrudjmakdak 19.07.2013 22:46

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4

dmitriymar 19.07.2013 23:02

и в чём вопрос, если знаешь какие заголовки нужно отдавать(не вглядывался ни в первый ни в второй твой пост)? вся "магия" в заголовках, а что как делается(в т.ч заголовки) можно посмотреть на любом сайте , предлагающем сохранить файлы -всё под руками

skrudjmakdak 19.07.2013 23:55

в каком месте их прописывать, вот это я не догоню))

danik.js 20.07.2013 01:26

Цитата:

Сообщение от skrudjmakdak
его надо сохранить, не открыть как файл. можно ли такое реализовать?

Нельзя. Если это известный mime-тип, то браузер его отобразит, вместо предложения сохранить. Нет такой возможности форсировать сохранение файла. Можно только в webkit, который поддерживает на ссылках атрибут download="filename.ext", и то, не уверен что по click() произойдет сохранение файла.

skrudjmakdak 20.07.2013 14:14

danik.js, ок. спс

Deff 21.07.2013 03:44

Если на своём же домене, можно хакнуть в новых браузерах через XMLHttpRequest; MimeType("text/plain;

var xhr = new XMLHttpRequest();
xhr.open(svr,src,true);
xhr.overrideMimeType("text/plain; charset=x-user-defined");

danik.js 21.07.2013 04:15

И че толку от XHR? Речь ведь про сохранение файла. Разве что потом отдать через data:uri? Но тогда и расширение файла ведь соответствующее получится - file.txt, да вобще, имя файла ведь не задашь..

Deff 21.07.2013 12:39

Цитата:

Сообщение от Дзен-трансгуманист
Поновее будет xhr.responseType = 'arraybuffer', а бинарный буфер в xhr.response.

:) Дык буфер подразумевался автоматом - иначе не передать-сформировать последующий преобразование а бинарник и отдачу через FileReader


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