Failų įkėlimas per internetinę formą yra svarbi daugelio šiuolaikinių programų ir svetainių dalis. Šiame vadove sužinosi, kaip veiksmingai įgyvendinti Input-Elementą type="file" failų įkėlimams. Suprasite, kaip veikia failų pasirinkimo procesas, kaip užtikrinti, kad failas būtų teisingai išsiųstas į serverį, ir kokie nustatymai yra svarbūs. Šis vadovas skirtas kūrėjams, kurie nori plėsti savo žinias dirbant su HTML formomis ir failų įkėlimu.

Svarbiausiai išvados

  • Input-Elementas type="file" leidžia vartotojams įkelti failus.
  • Teisingų formos tipų ir Enctype atributų naudojimas yra lemiamas norint sėkmingai įkelti failus.
  • Galite kurti vartotojams patogią sąsają failų įkėlimui naudodami JavaScript.

Lašelis-po-lašelio vadovas

Pirmiausia įsitikinkite, kad pagrindinė HTML forma su Input-Elementu type="file" egzistuoja.

Efektyvus failų įkėlimo įkėlimo formose internete įgyvendinimas

Čia, šiame vietiniame pavyzdyje, aš jau sukūriau Input-Elementą su tipo „Failas“. Matai, kad mygtuko šalia teksto „no file chosen“. Input-Elementas type="file" leidžia vartotojams pasirinkti vieną arba kelis failus, kuriuos tuomet galima atverti naudojant operacinės sistemos failų dialogą.

Efektyvus failų įkėlimo į tinklalapio formą įgyvendinimas

Dialogo išvaizda skiriasi priklausomai nuo operacinės sistemos, ar tai būtų Windows, Linux ar Mac OS. Čia yra manas pavyzdys iš Mac OS sistemos, kur galite pasirinkti vieną arba kelis failus. Paspaudus „Atverti“, pasirinktas failas bus rodomas Input lauke.

Efektyvus failų įkėlimo į interneto formus įdiegimas

Dabar jūs pasirinkote failą, ir jis rodomas kaip reikšmė Input-Elemenete. Formai apdoroti aš naudoju GET metodą.

Efektyvus failų įkėlimo į tinklalapio formų implementavimas

Tada galite siųsti formą, tačiau pastebėsite, kad URL adrese matote tik failo pavadinimą. Tačiau, norint visą failo turinį perduoti serveriui, tai reikės pakeisti.

Efektyvus failų įkėlimo į tinklalapio formų įgyvendinimas

Tai gali būti padaryta pakeitus metodą į POST. Norint peržiūrėti siunčiamą informaciją, persijunkite į Tinklo skirtuką.

Efektyvus failų įkėlimo į web formus įdiegimas

Tačiau prieš tai įsitikinkite, kad bent vieną failą esate pasirinkęs. Jei pasirenkate failą „image.jpg“ ir siunčiate formą, jį rasite duomenų pakuotėje. Tačiau greitai pastebėsite, kad čia taip pat perduodamas tik failo pavadinimas.

Efektyvus failų įkėlimo į tinklalapio formą įdiegimas

Problema yra ta, kad enctype atributas nėra nustatytas. Turime jį nustatyti į multipart/form-data, kad failą būtų galima perduoti teisingu duomenų formatu.

Efektyvus failų įkėlimo įkėlimas į interneto formus

Nustatę šį Enctype, galite užtikrinti, kad serveris gaus failą savo binarinėse duomenyse. Įgyvendinus tai, vėl pasirenkite savo paveikslėlio failą ir pateikite formą dar kartą.

Efektyvus failų įkėlimo į tinklapio formą įgyvendinimas

Dabar matote, kad perdavimas neša ne tik failo pavadinimą, bet ir binarinius duomenis, kuriuos serveris turės apdoroti.

Serveris turi iššifruoti tuos binarinius duomenis. Svarbu, kad serveris teisingai interpretuotų šią informaciją, kad failą būtų galima įrašyti į duomenų bazę arba serverį.

Efektyvus failų įkėlimo į tinklalapių formus įdiegimas

Siekiant išplėsti savo formą, galite pridėti papildomų Input laukų. Pavyzdžiui, klasikinis teksto laukelis, skirtas kartu su paveikslėlio failu persiųsti paveikslėlio pavadinimą.

Efektyvus failų įkėlimo į web formus įgyvendinimas

Duomenys yra siunčiami kaip tekstas ir binariniai duomenys. Tai leidžia sudėtingą serverio pusės apdorojimą.

Efektyvus failų įkėlimo į tinklalapio formą įdiegimas

Dar vienas naudingas aspektas yra funkcijos „multiple“ įdiegimas, kad vartotojai galėtų vienu metu įkelti daugiau nei vieną failą.

Efektyvus failų įkėlimo į „Web“ formus įgyvendinimas

Pridėjęs atributą „multiple“, vartotojai gali pasirinkti kelis failus failų dialogo lange.

Veiksmingas failų įkėlimo į tinklalapių formus įgyvendinimas

Atmink, kad turėsi pridėti įvykio klausyklį, kad galėtum valdyti pasirinktų failų pavadinimus, kai vartotojai pasirenka savo failus. Tai suteikia galimybę pasiekti tai, kad būtų galima prieiti ir prie įkeltų failų skaičiaus.

Efektyvus failų įkėlimo implementavimas interneto formose

Papildomai galite nurodyti, kuriuos failų formatus vartotojas gali pasirinkti, naudodami „accept“ atributą.

Efektyvus failų įkėlimo į tinklapio formus įgyvendinimas

Jei norite, pavyzdžiui, leisti tik JPEG arba PNG paveikslėlius, galite tiesiog nurodyti tai įvesties deklaracijoje, kad galėtumėte prisitaikyti prie pasirinkimo pagal operacinę sistemą.

Taip pat galite nurodyti bendrus formatus naudodami image/*, kad būtų leidžiama rinktis visus paveikslėlio failus.

Veiksmingas failų įkėlimo į interneto formus įgyvendinimas

Jei norite sužinoti daugiau apie „accept“ atributo galimybes, rekomenduoju pasinaudoti „MDN“ svetainės dokumentacija.

Efektyvus failų įkėlimo įkėlimo į tinklapio formus įgyvendinimas

Ši dokumentacija suteikia išsamią informaciją apie įvesties elementų naudojimą ir kitas formos funkcijas.

Santrauka

Dabar jūs pamatėte, kaip sukurti paprastą internetinę formą su failo įkėlimo įvestimi. Mes apžvelgėme pagrindinius koncepcijas, įskaitant metodus, kaip failas siunčiamas į serverį, ir kokių atributų reikia, kad būtų optimizuotas įkėlimo procesas.

Daugiausia užduodami klausimai

Kas yra skirtumas tarp GET ir POST, kai siunčiami failai?GET siunčia tik failų pavadinimus URL, tuo tarpu POST perduoda failų turinį kaip binarinius duomenis.

Kaip užtikrinti, kad failas būtų teisingame formate išsiųstas?Nustatykite formos „enctype“ atributą kaip „multipart/form-data“ failų perdavimui.

Ar galiu pasirinkti kelis failus vienu metu?Taip, pridėjęs atributą „multiple“ į įvesties žymę.

Kaip galiu apriboti pasirinktų failų formatą?Naudokite atributą „accept“ įvesties žymėje norint nurodyti tam tikrus failų formatus.

Kur galiu rasti daugiau informacijos apie „input type="file"“ elementą?Mozilla Developer Network (MDN) yra puiki išteklių dėl išsamių informacijų ir pavyzdžių.