Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как получить рисунок с сервера без сохранения в фа


Автор: maruany 17.6.2010, 04:19
Требуется на сервере построить изображение по данным, передаваемым с клиента. Набор данных большой и не передается полностью на сервер через GET (типа <IMG src="http://site.ru/createimage.php?g=1&..."). Каким образом можно передать большие данные для подобного запроса?

Думал использовать AJAX и запрос POST. Но как полученное от сервера изображение подставить в IMG-объект, без промежуточного сохранения в файле на сервере?


Автор: ksnk 17.6.2010, 06:25
Цитата(maruany @  17.6.2010,  04:19 Найти цитируемый пост)
Каким образом можно передать большие данные для подобного запроса?

есть только 2 способа передать данные на сервер. если GEt не подходит - остается Post.
Цитата(maruany @  17.6.2010,  04:19 Найти цитируемый пост)
Но как полученное от сервера изображение подставить в IMG-объект

полученое от сервера изображение никак не подставить в IMG, но можно наложить картинку поверх картинки, нарисовать с помощью canvas.

нужно бы еще подумать и описать задачу поподробнее, авось станет понятнее и самому  smile 

Автор: IDVsbruck 21.6.2010, 13:59
Цитата(maruany @  17.6.2010,  04:19 Найти цитируемый пост)
Требуется на сервере построить изображение по данным, передаваемым с клиента. Набор данных большой и не передается полностью на сервер через GET (типа <IMG src="http://site.ru/createimage.php?g=1&..."). Каким образом можно передать большие данные для подобного запроса?

Думал использовать AJAX и запрос POST. Но как полученное от сервера изображение подставить в IMG-объект, без промежуточного сохранения в файле на сервере?

По-моему, я тебе уже где-то отвечал на этот вопрос ...

Никаких проблем: динамический запрос, формирование картинки как бинарного потока, создание ответа (response) с соответствующими заголовками и залив бинарного потока в ответ. Для коиента никакой разницы. То есть тебе не надо что-то придумывать, а просто в нужный момент меняешь атрибут src у картинки и она будет тащить с сервера то, что тебе нужно. А оперируя событием onload у картинки, можно отображать "по команде".

Автор: mcTep 23.6.2010, 09:50
Цитата(IDVsbruck @  21.6.2010,  13:59 Найти цитируемый пост)
просто в нужный момент меняешь атрибут src у картинки и она будет тащить с сервера то, что тебе нужно


А как получить размер того, что он тащит в текущий момент?

В «Webkit inspector» и «Firebug» есть вкладки Resources и Net, в которых отображаются текущие загрузки файлов. Как то же эта информация доступна? Если и не через JS, то хотя бы нативно, а если нативно, то может производители браузеров предоставляют какой-либо API для получения этих данных?

Автор: IDVsbruck 26.6.2010, 19:51
А зачем размеры картинки когда "тащит в текущий момент"? Притащит - посмотришь.
Хотя если о-о-очень хочется, то можно делать двухшаговую комбинацию - сначала асинхронно получать инфу, а потом получать картинку. Но зачем?

Автор: mcTep 26.6.2010, 23:15
Сделать прелоадер с процентами. 


Только чтобы сервер не грузить лишний, раз сделать получение принятого количества байт через внутренние механизмы браузера. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)