Powiedzmy, że mam ten element na stronie:
<input id="image-file" type="file" />
Spowoduje to utworzenie przycisku, który pozwoli użytkownikom strony internetowej wybrać plik za pomocą okna dialogowego „Otwórz plik ...” w przeglądarce.
Powiedzmy, że użytkownik klika wspomniany przycisk, wybiera plik w oknie dialogowym, a następnie klika przycisk „Ok”, aby zamknąć okno dialogowe.
Wybrana nazwa pliku jest teraz przechowywana w:
document.getElementById("image-file").value
Powiedzmy, że serwer obsługuje wieloczęściowe testy POST pod adresem URL „/ upload / image”.
Jak wysłać plik do „/ upload / image”?
W jaki sposób mogę również oczekiwać powiadomienia o zakończeniu przesyłania pliku?
javascript
file-upload
YummyBánhMì
źródło
źródło
Odpowiedzi:
Chyba, że próbujesz przesłać plik za pomocą ajax, po prostu przesłać formularz do
/upload/image
.Jeśli chcesz załadować obraz w tle (np. Bez przesyłania całego formularza), możesz użyć ajax:
źródło
Pure JS
Opcji pobierania można użyć opcjonalnie z funkcją Oczekuj na wypróbowanie
Pokaż fragment kodu
Podejście starej szkoły - xhr
Pokaż fragment kodu
PODSUMOWANIE
filename
parametrze formData.Content-Type
namultipart/form-data
- zostanie to ustawione automatycznie przez przeglądarkę./upload/image
możesz użyć pełnego adresu jakhttp://.../upload/image
.multiple
atrybutu:<input multiple type=... />
i dołącz wszystkie wybrane pliki do formData w podobny sposób (np.photo2=...files[2];
...formData.append("photo2", photo2);
)let user = {name:'john', age:34}
W ten sposób:formData.append("user", JSON.stringify(user));
źródło
enctype="multipart/form-data"
net::ERR_ABORTED 405 (Method Not Allowed)