Допустим, у меня есть этот элемент на странице:
<input id="image-file" type="file" />
Это создаст кнопку, которая позволит пользователям веб-страницы выбрать файл через диалоговое окно ОС «Файл открыт ...» в браузере.
Допустим, пользователь нажимает указанную кнопку, выбирает файл в диалоговом окне, а затем нажимает кнопку «ОК», чтобы закрыть диалоговое окно.
Выбранное имя файла теперь сохраняется в:
document.getElementById("image-file").value
Теперь предположим, что сервер обрабатывает многоэлементные сообщения POST по URL-адресу "/ upload / image".
Как отправить файл в «/ upload / image»?
Кроме того, как я могу прослушать уведомление о том, что файл закончил загрузку?
javascript
file-upload
YummyBánhMì
источник
источник
Ответы:
Если вы не пытаетесь загрузить файл с помощью ajax, просто отправьте форму в
/upload/image
.Если вы хотите загрузить изображение в фоновом режиме (например, без отправки всей формы), вы можете использовать ajax:
источник
Чистый JS
При желании вы можете использовать fetch с помощью await-try-catch
Показать фрагмент кода
Старый школьный подход - xhr
Показать фрагмент кода
РЕЗЮМЕ
filename
параметре formData.Content-Type
наmultipart/form-data
- это будет установлено браузером автоматически./upload/image
вы можете использовать полный адрес, какhttp://.../upload/image
.multiple
атрибут:<input multiple type=... />
и прикрепите все выбранные файлы к formData аналогичным образом (например,photo2=...files[2];
...formData.append("photo2", photo2);
)let user = {name:'john', age:34}
таким образом:formData.append("user", JSON.stringify(user));
источник
enctype="multipart/form-data"
net::ERR_ABORTED 405 (Method Not Allowed)