Подтвердить что ты не робот

Как отправить "файл" без кнопки отправки с помощью JavaScript?

Есть ли способ автоматически отправить форму без нажатия кнопки "отправить"?

У меня есть форма с одним входным файлом. Я бы добавил форму после того, как пользователь выбрал один файл.

4b9b3361

Ответ 1

да, вы можете использовать функцию form.submit(). Добавьте прослушиватель onchange на вход файла и привяжите его к функции form.submit, например:

<form action="upload.php" method="post">
<input type="file" onchange="this.form.submit()" name="myFile"/>
</form>

Ответ 2

Да, вы можете добавить следующее к событию onchange ввода файла:

<input type='file' .... onchange='this.form.submit();'>

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

Ответ 3

Это решение работает для меня.

<form enctype="multipart/form-data" method="POST" action="/upload">
  <input id="myfilefield" type="file" name="file">
  <input type="submit">
</form>

 

document.getElementById('myfilefield').onchange = function() {
  this.form.submit();
};

Кстати, вам не нужно использовать flash. Gmail делает это с помощью XHR Level 2.

Ответ 4

Я не верю, что вы можете это сделать. Браузеры очень, очень строгие в отношении того, что вы можете сделать, чтобы загрузить поля для загрузки из-за возможности злоупотребления. Если пользователь случайно выбирает частный файл, он не захочет, чтобы он немедленно начал загрузку этого файла на случайный сервер.

Ответ 5

Я не уверен, какие ограничения существуют при создании HTML-формы.

Вы можете, однако, сделать это с помощью Flash. Gmail делает это - когда я нажимаю "Прикрепить файл", я получаю приглашение с диалоговым окном просмотра файлов, и когда я ОК, это диалог, загрузка начинается немедленно, а также дает мне индикатор выполнения.

Googling для "Flash uploader" предоставит вам много вариантов, но у меня нет опыта с ними.