Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2016, 12:52
Новичок на форуме
Отправить личное сообщение для Set_Mortensen Посмотреть профиль Найти все сообщения от Set_Mortensen
 
Регистрация: 08.08.2016
Сообщений: 4

Работа с загруженными файлами
Здравствуйте! Тема такая: добавляем товар. Реализуем примерно так.
<input type='file'> выбираем файл с компьютера. В поле <input type='text'> пишем название товара. Нажимаем на <input type='submit'> и что происходит дальше??
По какому адресу будет доступна загруженная картинка? Как мне потом в другом месте DOM отобразить эту картинку (какой scr нужно указывать для img чтобы отобразить загруженную картинку)?
P.S. Хочу чтобы эта загруженная картинка отображалась на странице и после обновления страницы, тоесть её URL запишим в некий JSON файл, из содержимого которого будут показываться все img на странице.
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2016, 13:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Set_Mortensen
что происходит дальше?
Будет оправлена форма серверному скрипту указанному в атрибуте action формы.

Сообщение от Set_Mortensen
По какому адресу будет доступна загруженная картинка?
По тому, куда запишет изображение серверный сценарий.
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2016, 15:57
Новичок на форуме
Отправить личное сообщение для Set_Mortensen Посмотреть профиль Найти все сообщения от Set_Mortensen
 
Регистрация: 08.08.2016
Сообщений: 4

тоесть надо знать NodeJS? или как сделать серверный скрипт?
можно лёгенький пример?
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2016, 16:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Set_Mortensen
тоесть надо знать NodeJS?
Серверным скриптом может быть не только NodeJS, но и PHP, Perl, Python, Ruby, ASP.NET, Java, ... Так что трудно сказать чего вам именно нужно. Если сами хотите сделать выбор, а не использовать тот язык, который будет предлагать вам хост - выбирайте, изучайте.

В РНР все просто - файлы пришедшие формой загружаются во временную папку как временные файлы, описание которых содержит суперглобальный массив $_FILES, и обрабатывая который перемещают загруженные файлы в определенный каталог. Изображения можно при этом и обработать, например библиотекой GD или, если имеется на сервере, ImageMagick.

NodeJS я не занимаюсь, что он имеет в своем распоряжении для данных операций сказать не могу.
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2016, 22:52
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Set_Mortensen
и что происходит дальше?
Дальше браузер открывает соединение с сервером точно так же, как он это делает при запросе веб-страницы по введенному адресу. Пожав руки сервер с браузером начинают обмен заголовками и данными.

Адресом запроса по умолчанию является текущий. То есть если в action="" то пойдет на тот адрес, который в строке браузера. Если указано явно - по указанному.

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

ТС, с твоим уровнем проще скачать готовое или заказать, если у тебя вообще сервер есть.
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2016, 14:27
Новичок на форуме
Отправить личное сообщение для Set_Mortensen Посмотреть профиль Найти все сообщения от Set_Mortensen
 
Регистрация: 08.08.2016
Сообщений: 4

я только учусь. Никак не освою XMLHttpRequest особенно POST метод...сам то я не тупой, но тут чёто недоходит
Форма обязательна? я не могу сделать к примеру так?
var xmlhttp = new XMLHttpRequest();
var b = {"name":"Vasya","age":98};
xmlhttp.open('POST', 'user.json', false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(b);


чтобы в имеющийся JSON файл добавить объект b
Ответить с цитированием
  #7 (permalink)  
Старый 10.08.2016, 22:41
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Для метода post форма не обязательна, но без нее задолбаешься все собирать, а как там без формы с файлами обходились я даже проверять не стану. Просто сделай новый объект формы и втыкай туда чего угодно.

Например

var
el=D.getElementById("import-file"),
x = new XMLHttpRequest(),
f = new FormData();
f.append(el.name, el.files[0], el.value);
x.open("POST",url);
x.onreadystatechange=function(){/* и тут уже калбек  */
x.setRequestHeader("X-Requested-With","XMLHttpRequest");
x.send(f);


С текстовыми данными такой же аппенд, почитай про FormData

PS Напомню что контекст был закачать файло.

Последний раз редактировалось warren buffet, 10.08.2016 в 22:47.
Ответить с цитированием
  #8 (permalink)  
Старый 11.08.2016, 10:21
Новичок на форуме
Отправить личное сообщение для Set_Mortensen Посмотреть профиль Найти все сообщения от Set_Mortensen
 
Регистрация: 08.08.2016
Сообщений: 4

всем спасибо. суть понял. осталось выучить backend
Ответить с цитированием
  #9 (permalink)  
Старый 11.08.2016, 14:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Set_Mortensen
суть понял. осталось выучить backend
Не совсем.

То что по последнему вопросу - форма не обязательна.
Не зная Node.js ничего не могу сказать про передачу непосредственно объекта, но что-то подсказывает, что что-то не так.

Но дело даже не в этом. Можно изучать любой язык, знать его безупречно, но вот воспользоваться им не уметь. Изучая язык, учитесь сразу ставить задачи, в уже в них находить пути решения используя язык. К примеру (о чем я не стал говорить сразу):

Хочу чтобы эта загруженная картинка отображалась на странице и после обновления страницы, тоесть её URL запишим в некий JSON файл, из содержимого которого будут показываться все img на странице. - выделенное красным совсем не нужно. Если понимать задачу, а значит планировать и понимать хранение данных, то "этого не нужно" обязательно станет понятным. Просто попробуйте представить все это мысленно, не вникая в языки программирования.
Ответить с цитированием
  #10 (permalink)  
Старый 11.08.2016, 18:58
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

laimas, хватит народ пугать. Записать файл на сервер через веб-интерфейс - это самое интересное с чем сталкивается начинающий кодер. Всякие там текстики - это не впечатляет, а когда закачал файл и он бамц и появился на публике как тумба и она еще и открывается - это прикольно.

На всякий случай пример транспозинга на все случаи жизни переменной с файлами.

$files=array();

foreach($_FILES as $field=>$values)
	foreach($values as $index=>$value)
		if(is_array($value))
			foreach($value as $i=>$v)
				$files[$index][$i][$field]=$v;
		else
			$files[$index][0][$field]=$value;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами Greet Events/DOM/Window 7 26.09.2014 17:38
Linux + работа с файлами NOCaut Firefox/Mozilla 0 30.07.2011 14:17
Работа с файлами hkaren Общие вопросы Javascript 13 09.06.2010 20:35
работа с файлами JS demix Общие вопросы Javascript 1 19.02.2010 23:56
работа с файлами ashedow Общие вопросы Javascript 3 14.12.2009 12:15