Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Динамическая смена рисунка на html, используя локальные рисунки с компа пользователя (https://javascript.ru/forum/misc/3170-dinamicheskaya-smena-risunka-na-html-ispolzuya-lokalnye-risunki-s-kompa-polzovatelya.html)

evgen28 24.03.2009 15:53

Динамическая смена рисунка на html, используя локальные рисунки с компа пользователя
 
Здравствуйте! Вопрос такой:
есть примерно такой простой html-код
<img src='src1' /><br/>
<input type='file' value='сменить рисунок'/>

Можно как либо сменить рисунок находящийся в src на выбранный пользователем локальный рисунок?
В принципе можно рисунок и input поместить во фрейм и на событии onchange кидать файл на сервер, записывать его в темповую папку сервера а потом переформировывать страницу, но может есть другие решения?Граждане, помогите кто чем может!

p.s.:протокол file:/// в src картинки не работает

Gvozd 24.03.2009 16:06

Не думаю, что есть другие решения.
то, что file: не работает при загрузке страницы с сервера это правильно с точки зрения безопасноти. в свое время было немало проблем из-за разрешенного протокола file:
способ с сервером кажется мне единственным

evgen28 24.03.2009 16:21

может есть готовый вариант скрипта(хотя бы для описанного алгоритма) с красивостями типа(загрузка...)?

Gvozd 24.03.2009 16:29

ну, готового скрипта нету.
но и пишется он не так уж сложно.
делаете форму загрузки , чтобы загружало в скрытый iframe
на стороне сервера скрипт принимающий файл пусть возвращает ссылку на рисунок.
когда фрейм прогрузится(onload) меняете src у необходимого рисунка на тот, который прописан во фрейме
что же до крсасивостей, попробуйте http://dklab.ru/lib/JsHttpRequest/
у них вроде есть такая красивость.
ну, или гляньте как прогресбар работает у какого-нибудь ресурса

evgen28 24.03.2009 16:31

ладно буду писать сам тогда. Я mootools использую там красивости вроде есть. Спасибо Gvozd за ответы!

Gvozd 24.03.2009 16:50

пожалуйста

evgen28 27.03.2009 00:21

чето я туплю - не могу передать файлы в iframe

клиентская часть
...
<iframe id='fr' name ='fr' src='' width="200px" heigth="200px"</iframe><br/>
<form id="FormName" name="FormName" action="server.php" method="post" enctype="multipart/form-data" target="fr">
<input id="fileLoad" type="file" value="сменить картинку" onchange="javascript:FormName.submit();"></input>
</form>
...
серверная часть
...
<?php print_r($_FILES); ?>
...

пхп пишет что массив $_FILES пуст. Подскажите ламеру где я проморгал?

Gvozd 27.03.2009 01:08

на форуме доступны BB-теги для оформления кода
к тому же:вы хоть следите за своим HTML-ем.
у вас теги не закрытые.атрибуты посторонние.
вот перебрал вашу форму.попробуйте, долодно работать:
<iframe id='fr' name ='fr' src='' width="200px" heigth="200px"></iframe><br/>
<form id="FormName" name="FormName" action="server.php" method="post" enctype="multipart/form-data" target="fr">
<input id="fileLoad" type="file" onchange="javascript:FormName.submit();" />
<input type="submit" />
</form>

evgen28 27.03.2009 13:02

Спасибо за ответ-почему то не прокатило ни в мозиле ни в ие
пустые массивы $_FILES и $_POST

Gvozd 27.03.2009 13:14

неужели, я должен исправлять все эти мелкие недописки за тебя?
после того как ты попробовал мое исправление,и убедился что оно не работает, ты что-то пытался сделать?
ты забыл атрибут name для соответствующего поля формы
естественно, что без него на сервер ничего не приходило
иди кури HTML:
http://html.manual.ru/
http://htmlbook.ru/html/


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