Как получить доступ к содержимому <input type = file>? - PullRequest
2 голосов
/ 09 сентября 2011

У меня есть две формы с именем form1, form2. Одна форма с текстовыми полями, другая с файлами ввода. Мне нужно подделать POST-запрос на сервер с содержимым текстовых полей и файловых входов. Читать содержимое текстовых полей легко. Но я не могу понять, как читать содержимое файла и как подделать POST-запрос с помощью файла.

Кто-нибудь знает, возможно ли это?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Вы пытаетесь отправить файл, используя XMLHttpRequest? В таком случае вам нужно будет использовать XMLHttpRequest2, вторую версию XMLHttpRequest, которая теперь поддерживает загрузку двоичных файлов с компьютера пользователя. Об этом есть руководство по HTML5 Rocks .

0 голосов
/ 09 сентября 2011

Если вы будете делать это через xmlHttpRequest (Ajax), вам нужно объявить заголовок как multipart/form-data.Я считаю, что это выглядело бы примерно так, если бы у вас уже был запрос в переменной xmlhttp.

xmlhttp.open("POST", "file.php", true);
xmlhttp.setRequestHeader("Content-type","multipart/form-data");
xmlhttp.send(queryString());

. В этом примере вы должны построить строку запроса с парными значениями в функции queryString (), чтобывывод функции выглядит как name=value&name2=value2.Я не уверен, но это не должно иметь значения, что вы отправляете данные файла.Я уверен, что кто-то исправит меня, если я ошибаюсь, но вы можете хотя бы попробовать это.

...