При создании объекта FormData из существующей формы имена файлов автоматически добавляются и доступны?

Форма

<form id="my_form">
<input type="file" name="my_file">
<input type="text" name="field_one">
<input type="text" name="field_two">
<button>send</button>
</form>

Создать объект FormData

var myFormData = new FormData($("#my_form")[0]);

Вопрос

Доступно ли имя файла my_file, даже если оно не было специально определено (для манипуляций с DOM и вставки в базу данных)?

Это гласит:

Вы также можете добавить файл или большой двоичный объект непосредственно к объекту FormData, например:

data.append("myfile", myBlob, "filename.txt");

Но не указано, добавляется ли имя файла автоматически при создании объекта FormData из существующей формы.

Если он не добавляется автоматически, является ли единственным вариантом вручную создать объект FormData с помощью нескольких операторов append(), и в этом случае возможно определение имени файла?


person user1063287    schedule 19.02.2014    source источник


Ответы (1)


Кажется, имя файла добавляется автоматически (только что протестировано в Chrome и не уверено, отличается ли оно в других обстоятельствах).

Этапы воспроизведения

  • Перейдите на страницу http://jsfiddle.net/rwone/vsRSf/.
  • Откройте вкладку «Сеть» в инструментах разработчика.
  • Выберите два изображения и нажмите кнопку
  • Просмотрите вкладку «Сеть», и вы увидите, что имена файлов определены

введите здесь описание изображения

Информация об изображении определяется только двумя параметрами, а не третьим параметром имени файла:

myFormData.append(name, file);

Оригинальная скрипка, основанная на этом сообщении:

https://stackoverflow.com/a/21901886/1063287

person user1063287    schedule 21.02.2014