Co potrafi API FileList w JavaScript i jak z niego korzystać.

Interfejs API FileList umożliwia pełną kontrolę nad plikiem wybranym przez użytkownika, dzięki czemu można przeprowadzić walidację pliku.

Pokażę Ci niektóre rzeczy, które możesz sprawdzić w pliku za pomocą interfejsu API FileList.

Załóżmy, że mam plik wejściowy poniżej:

Kiedy ponownie załaduję moją stronę HTML i wybiorę kilka obrazów, w ten sposób pobiorę wybrane pliki jako obiekt.

Oto podgląd:

Możesz zobaczyć, że FileList jest obiektem, który ma w sobie inne właściwości.

W obiekcie FileList:

  • Możesz pobrać liczbę plików wybranych przez użytkownika za pomocą właściwości length.
  • Więcej informacji o wybranym pliku można uzyskać korzystając z indeksu numerycznego 0...(length - 1)

Na powyższym obrazku widać, że długość wynosi 6, co oznacza, że ​​użytkownik wybrał 6 plików. Zatem pliki otrzymają indeks od 0 do (6–1), tj. od 0 do 5.

Jest to przydatne, jeśli chcesz przeglądać każdy z plików wybranych przez użytkownika.

Właściwości obiektu API FileList

Porozmawiajmy teraz więcej o właściwościach zawartych w wybranym pliku.

  • ostatnia modyfikacja timestamp

Jest to data ostatniej modyfikacji pliku podana jako znacznik czasu.

Aby mieć kontrolę nad datą, przekaż znacznik czasu do konstruktora Date.

  • data ostatniej modyfikacji Date

Jest to pełna data ostatniej modyfikacji pliku.

  • imię string

To jest nazwa pliku.

  • rozmiar integer

Jest to rozmiar pliku w bajtach.

  • wpisz string

To jest typ MIME pliku.

Podsumowując, oto obraz przedstawiający właściwości interfejsu API FileList:

Pętla poprzez pliki

Teraz nauczmy się, jak możemy przeglądać każdy z plików wybranych przez użytkownika i przeprowadzać na nich walidację.

FileList Api udostępnia dane jako obiekt, dlatego musimy napisać pętlę, która przejdzie przez ten obiekt i pobierze potrzebne dane.

Jeśli nie sprawdziłeś mojego poprzedniego artykułu o tym, jak przeglądać obiekt w JavaScript, tutaj jest link do artykułu.

Kiedy wykonasz powyższy kod, zobaczysz, że możemy przejść przez obiekt w pętli i wyprowadzić każdy z plików.

Teraz jesteśmy gotowi do sprawdzenia poprawności plików.

Walidacja

Weryfikacja rozmiaru

Przypomnijmy, że rozmiar konkretnego pliku jest zwracany jako bytes.

Zakładając, że użytkownik może wybierać pliki o rozmiarze nie większym niż 2 MB, przeprowadzę weryfikację w ten sposób.

  • Konwertuj 2MB na bajty.
  • Przeglądaj pliki w pętli i zapisuj ich rozmiary.
  • Sprawdź, czy całkowity rozmiar jest większy niż 2MB.

Wpisz Walidację

Zakładając, że użytkownik może wybierać tylko pliki obrazów, w ten sposób przeprowadzę weryfikację.

  • Utwórz tablicę, która będzie przechowywać typy plików obrazów.
  • Przejrzyj pliki w pętli i sprawdź, czy któryś z nich nie pasuje do wymaganego typu.

Oto, co się stanie, gdy wybiorę pliki, które nie są obsługiwane.

Sprawdzanie rozszerzeń plików

Do mojej ostatniej weryfikacji chcę, aby użytkownik dostarczył pliki z rozszerzeniem „.png, .jpg, .jpeg”, a każdy plik, który nie pasuje do rozszerzenia, zostanie oznaczony jako nieobsługiwany typ pliku.

Aby przeprowadzić tę weryfikację, wykonam następujące czynności:

  • Zapisz wymagane rozszerzenia plików w tablicy.
  • Przejrzyj pliki w pętli i przywołaj ich nazwy.
  • Wyodrębnij rozszerzenie pliku z nazwy, a następnie porównaj je z wymaganymi rozszerzeniami plików.

Oto, co się stanie, gdy wybiorę pliki, które nie są obsługiwane:

Mam nadzieję, że dzięki temu małemu ćwiczeniu, które tutaj wykonaliśmy, będziesz w stanie w pełni zrozumieć możliwości interfejsu API FileList w JavaScript, w tym jak go używać.

Bardzo chciałbym mieć Twój wkład w ten artykuł.

Dodatkowy

Zbudowałem i uruchomiłem bibliotekę JavaScript w NPM, która umożliwia sprawdzanie poprawności formularzy front-end przy użyciu wyrażeń regularnych, reguł sprawdzania poprawności i atrybutów wejściowych formularzy.

Za pomocą tej biblioteki można sprawdzać poprawność wszystkich typów danych wejściowych w formularzach, w tym sprawdzanie poprawności plików i sprawdzanie poprawności długości.

  • Sprawdź tę bibliotekę na NPM:


  • Sprawdź tę bibliotekę na GitHubie:


  • Sprawdź dokumentację:


Dziękuję.

Więcej treści na PlainEnglish.io. Zapisz się na nasz „bezpłatny cotygodniowy biuletyn”. Śledź nas na Twitterze i LinkedIn. Sprawdź nasz Discord społeczności i dołącz do naszego Kolektywu talentów.