Languages
[Edit]
PL

React - upload wielu plików

3 points
Created by:
Wesley
501

W tym artykule chcielibyśmy pokazać, jak w prosty sposób można wysyłać na serwer wiele plików ze strony napisanej przy użyciu technologi React.

Istnieją dwa główne podejścia pozwalające użytkownikowi wybrać wiele plików:

  • użycie elementu input z właściwością multiple, który pozwala wybrać wiele plików na jedno wejście,
  • użycie wielu elementów input, z których każdy pozwala użytkownikowi wybrać tylko jeden plik.

W tym artykule chcemy pokazać, jak korzystać z drugiej opcji.

Poniższy przykład pokazuje prosty formularz z elementem <input type="file" />, za pomocą którego jesteśmy w stanie wskazać dowolne pliki znajdujące się na dysku komputera. Samo przesyłanie odbywa się już z użyciem funkcji fetch() przyjmującej jako argument obiekt klasy FormData - podobnie jak w przypadku klasycznego formularza, jednak w tym przypadku wysyłamy je poprzez żądanie AJAX / XHR.

Bardzo ważne jest, aby każdemu elementowi wejściowemu podać nazwę, która pozwoli odróżnić go na serwerze - w poniższym przykładzie użyto nazw plik1, plik2 i plik3.

Uruchamialny przykład:

// ONLINE-RUNNER:browser;

// Uwaga: Odkomentuj poniższe linijki podczas pracy z kompilatorem JSX:
// import React from 'react';
// import ReactDOM from 'react-dom';

const Form = () => {
 const handleSubmit = (e) => {
   e.preventDefault();
   const formData = new FormData(e.target);
   fetch("/example/upload", {
     method: "POST",
     body: formData,
   })
     .then((response) => {
       response.text()
         .then((text) => console.log(text));
     })
     .catch((error) => {
       console.error("Wystąpił błąd!");
     });
 };
 return (
   <form onSubmit={handleSubmit}>
     <label htmlFor="userfile">Wgrane pliki:</label><br />
     <br />
     <input type="file" name="plik1" /><br />
     <input type="file" name="plik2" /><br />
     <input type="file" name="plik3" /><br />
     <br />
     <input type="submit" value="Zatwierdź!" />
   </form>
 );
};

const root = document.querySelector("#root");
ReactDOM.render(<Form />, root);

Ważne:

  • każdemu plikowi należy nadać nazwę,
  • liczba wystąpień elementu <input type="file" /> zależna jest od ilości plików jaką zamierzamy wysłać na serwer. 

Alternative titles

  1. React - wgrywanie wielu plików na serwer
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

ReactJS (PL)

React - upload wielu plików
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join