Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   загрузить картинку напрямую в скрипт (https://javascript.ru/forum/misc/27173-zagruzit-kartinku-napryamuyu-v-skript.html)

bpystep 04.04.2012 16:55

загрузить картинку напрямую в скрипт
 
существует вот такая форма:
<form name="form">
	<input type="file" name="image" id="image" onChange="resize_image()">
</form>


существует вот такой(недоделанный) скрипт:
function resize_image() { 
	var img = document.form.image;
	$(document.getElementById('image')).remove();
           var tr = document.getElementById('tr'); //эта строка в таблице
	var td = document.createElement('td'); 
	tr.appendChild(td);
	td.innerHTML = '<img src='img.value' style="width: 20px;">';
	tr.appendChild(td);
}


т.е. я хочу получить путь картинки удалить поле <input type="text"> и в табличке создать ячейку с картинкой которую загрузили в удаленный input.

нашлось 2 проблемы:
1) нельзя получить img.value (как я понял в целях безопасности).
2) <img src="путь" - это ведь путь который будет обращаться на сервер, а не к клиенту.

просьба помочь разобраться, или посоветуйте почитать статью на данную тему

п.с. гуглил, мало что нашел качающегося данных проблем.

Skipp 04.04.2012 17:00

Ппц, я такого кода ещё не видел!!!
Спасибо посмеялся, классный анекдот.

Не закачав файл на сервер у вас ничего не выйдет.
1) Да, в целях безопасности это запрещено и невозможно.
2) По сути там мог бы быть путь указывающий на файл именно у клиента, но так сделать не получиться по причине пункта 1.

Два решения:
1) Флеш
2) Делать всё после загрузки файла на сервер.

bpystep 04.04.2012 17:25

а допустим, сделать какое нибудь поле (не <input>), чтобы пользователь грузанул туда изображение никак, больше никаких возможностей, типо он грузанул и изображение сразу запилилось на сервер. без ручной отправки файла на сервер

bpystep 04.04.2012 18:46

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 167077)

думаю что это пока для меня сложно, но спасибо за ссылку, попробую разобраться

Skipp 05.04.2012 09:53

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

Skipp 05.04.2012 14:11

Maxmaxmахimus,
С тем, что их поддерживают все браузеры я и не спорю, что и ссылка приведённая мною показывает, только вот версии какие этих браузеров? Как дела с ie? Десятая версия у всех стоит? У половины или четверти всех пользователей ie? Перед тем как умничать подумай что предлагаешь, я не спорю твой вариант хороший, но только это не решит вопрос полностью, а только его приукрасит, но так же придётся параллельно реализовывать грубые, но уже полностью рабочие методы.

Skipp 06.04.2012 10:03

Ну и отлично. Не понимай дальше.


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