De ce este capabil API-ul FileList din JavaScript și cum să îl folosească.

API-ul FileList vă permite să aveți control deplin asupra fișierului selectat de utilizator și, prin aceasta, puteți efectua validarea fișierului.

Vă voi arăta câteva dintre lucrurile pe care le puteți valida într-un fișier folosind API-ul FileList.

Să presupunem că am o intrare de fișier mai jos:

Când îmi reîncarc pagina HTML și selectez câteva imagini, așa voi recupera fișierele selectate ca obiect.

Iată previzualizarea:

Puteți vedea că FileList este un obiect care are alte proprietăți în interior.

În obiectul FileList:

  • Puteți prelua numărul de fișiere selectate de utilizator prin proprietatea length.
  • Puteți obține mai multe informații despre fișierul selectat folosind indexul numeric 0...(length - 1)

Din imaginea de mai sus, puteți vedea că lungimea este de 6 și asta înseamnă că utilizatorul a selectat 6 fișiere. Prin urmare, fișierele vor avea un index de la 0 la (6–1), adică de la 0 la 5.

Acest lucru este util dacă doriți să parcurgeți fiecare dintre fișierele selectate de un utilizator.

Proprietăți obiect API FileList

Acum haideți să vorbim mai multe despre proprietățile conținute într-un fișier selectat.

  • ultima modificare timestamp

Aceasta este data ultimei modificări a fișierului furnizată ca marcaj temporal.

Pentru a avea control asupra datei, trimiteți marca temporală la constructorul Date.

  • LastModifiedDate Date

Aceasta este data completă la care fișierul a fost modificat ultima dată.

  • nume string

Acesta este numele fișierului.

  • marimea integer

Aceasta este dimensiunea fișierului în octeți.

  • tip string

Acesta este tipul MIME al fișierului.

Pentru a recapitula, iată o imagine care arată proprietățile unui API FileList:

Buclă prin fișiere

Acum, să învățăm cum putem parcurge fiecare dintre fișierele selectate de utilizator și să efectuăm validări pe ele.

FileList Api furnizează date ca obiect, așa că trebuie să scriem o buclă care să treacă prin acest obiect și să recuperăm datele de care avem nevoie.

Dacă nu ați verificat articolul meu anterior despre cum să parcurgeți un obiect în JavaScript, „aici este un link către articol”.

Când executați codul de mai sus, veți vedea că putem parcurge obiectul și scoatem fiecare dintre fișiere.

Acum suntem gata să validăm fișierele.

Validare

Validarea mărimii

Amintiți-vă că dimensiunea unui anumit fișier este returnată ca bytes.

Presupunând că utilizatorului i se permite să selecteze fișiere care nu au mai mult de 2 MB, așa voi efectua validarea.

  • Convertiți 2MB în octeți.
  • Căutați în buclă fișierele și salvați dimensiunile acestora.
  • Verificați dacă dimensiunea totală este mai mare de 2 MB.

Validare tip

Acum, presupunând că utilizatorului i se permite să selecteze numai fișiere imagine, așa îmi voi efectua validările.

  • Creați o matrice care va stoca tipurile de fișiere imagine.
  • Parcurgeți fișierele și verificați dacă vreun fișier nu se potrivește cu tipul necesar.

Iată ce se întâmplă când selectez unele fișiere care nu sunt acceptate.

Validarea extensiilor de fișiere

Pentru ultima mea validare, vreau ca utilizatorul să furnizeze fișiere care au extensia „.png, .jpg, .jpeg”, iar orice fișier care nu se potrivește cu extensia va fi semnalat ca tip de fișier neacceptat.

Pentru a efectua această validare, voi:

  • Stocați extensiile de fișiere necesare într-o matrice.
  • Parcurgeți fișierele și obțineți numele acestora.
  • Extrageți extensia de fișier din nume și apoi comparați-o cu extensiile de fișiere necesare.

Iată ce se întâmplă când selectez fișiere care nu sunt acceptate:

Sper că, cu micul exercițiu pe care l-am făcut aici, puteți înțelege pe deplin de ce este capabil API-ul FileList în JavaScript, inclusiv cum să îl utilizați.

Mi-ar plăcea să am contribuțiile tale la acest articol.

Suplimentar

Am construit și lansat o bibliotecă JavaScript pe NPM care este capabilă să valideze formularele dvs. front-end folosind expresii regulate, reguli de validare și atribute de introducere a formularelor.

Cu această bibliotecă, puteți valida toate tipurile de intrări de formular, inclusiv validarea fișierelor și validarea lungimii.

  • Consultați această bibliotecă pe NPM:


octavalidate
Această bibliotecă ajută la validarea formularelor HTML folosind reguli de validare, expresii regulate sofisticate și introducere de formulare...www.npmjs.com”



  • Consultați această bibliotecă pe GitHub:


GitHub - Octagon-simon/octaValidate: această bibliotecă vă ajută să vă validați formularele HTML folosind...
Această bibliotecă vă ajută să vă validați formularele HTML folosind reguli de validare, expresii regulate sofisticate și formulare introducere...github.com»



  • Consultați documentația:


octaValidate: Noțiuni introductive
Bine ați venit la această bibliotecă grozavă care vă ajută să vă validați formularele HTML folosind reguli de validare, obișnuite sofisticate...octagon-simon.github.io”



Mulțumesc.

Mai mult conținut la PlainEnglish.io. Înscrieți-vă pentru buletinul informativ săptămânal gratuit. Urmărește-ne pe Twitterși LinkedIn. Consultați „Community Discord” și ​​alăturați-vă „Talent Collective”.