Показать сообщение отдельно
  #1 (permalink)  
Старый 18.10.2014, 22:09
Новичок на форуме
Отправить личное сообщение для native Посмотреть профиль Найти все сообщения от native
 
Регистрация: 18.10.2014
Сообщений: 1

Отправка формы на сервер (только при помощи JS)
Здравствуйте, при создании сайта передо мной встала задача отправить форму с файлами на сервер без перезагрузки страницы. В качестве способа реализации я выбрал универсальный метод - сделать все руками.

Насколько я понял это возможно сделать:
1. открыв запрос, задав заголовок Content-Type: multipart/form-data; boundary='--сгенерировать произвольное значение',
2. составить тело запроса из заголовков:
- для полей текстового типа, чекбоксов, радио, селектов: Content-Disposition: form/data; name='field_name' \r\n\r\n field.value \r\n
- для полей ввода файлов: Content-Disposition: form/data; name='file_input_field_name'; filename='file_input_field.value' \r\n\r\n file_input_field.files[0] \r\n, каждый из которых отделяется сторокой: --boundary \r\n
3. отправить тело запроса методом send объекта XMLHttpRequest

В результате этого, у меня все текстовые параметры успешно принимаются на стороне сервера php скриптом, а вот фотографии нет.
При просмотре тела запроса в консоли браузера для отправки файла отображается:
--07302109822734737
Content-Disposition: form-data; name="user_foto"; filename="my.jpg"
[object File]

все ли здесь правильно? мне не совсем понятно каким образом объект File может содержать эту картинку. (на стороне сервера наличие файлов проверяется if(is_uploaded_file($_FILES['user_foto']['tmp_name'])) {} else {//error message}. в браузере выводится error_message)

Помогите пожалуйста в этом разобраться.
Ответить с цитированием