Страницы

Поиск по вопросам

суббота, 9 марта 2019 г.

Скачать файл с помощью AJAX

Добрый день. Ситуация такая: Есть сервер. На нем есть ссылка нажав на которую происходит генерация контента (перегоняется DJVU в TIFF) и выдается TIFF файл. Генерация происходит долго. До минуты (все это время в браузере пишется "Ожидание %host%"). Затем вылазит окошко "сохранить как" и готовый файл скачивается. Вопрос: можно ли как-то на время генерации (от клика до окна "сохранить как") выводит информационное сообщение (к примеру крутить ГИФку от начала, а по окну - убрать ее)? Хотелось бы, по возможности, через jQuery AJAX. Но создаю я AJAX запрос посылаю его, возвращается ответ, срабатывает success, но "сохранить как" не происходит. Можно ли как-то ему объяснить, что неплохо было бы сохранить все это? Надеюсь понятно объяснил. Спасибо за ответы и за участие. UPD С сервера идет картинка TIFF. Но идет она через минуту. Эту минуту надо отловить. Если применить такой код $.post(URL, PARAMS, function(data) { alert(data.length); }); То по запросу можно ГИФ включить, по success закрыть, но как заставить его пришедшую data сохранить в файл? Alert вываливается и все. Инфу надо как-то дальше сохранить. Если использовать старый способ отправки через FORM то происходит смена URL на файл и отловить появление "save as" не представляю как.


Ответ

Может Вам подойдёт такое решение: Вы со страницы вызываете ajax запрос на генерацию картинку, и в фоне ждете ответ, но в ответе вы отдаёте не саму картинку, а ссылку на неё, и в методе success прописываете location=data $.ajax({url:"you url for generation"}).success(function(data){ location = data; }); Точнее наверное надо создать новое окно с этим локейшеном: window.open(data,'','…'); Ну и соответственно всякие крутилки включаете и выключаете перед вызовом аякса и в суксессе. Через фреймы всё прекрасно отлавливается: можно посмотреть здесь HTML

JS $(document).ready( function(){ $("button").click(function(){ $("#loader").text("Loading..."); $("iframe").ready(function(){$("#loader").text("Loading... started...");}); $("iframe").load(function(){$("#loader").text("Loaded!");}); $("iframe").attr("src","http://jfarcand.files.wordpress.com/2012/05/untitled.jpg"); }); } );​

Комментариев нет:

Отправить комментарий