Logika nalaganja: php, javascript in ajax

Spletni vir je "točka" v svetovnem spletu informacij. Informacije, ki so prikazane na njem, so običajno statično predstavljene in obiskovalec si jih ogleda. Navedete lahko povezavo do dokumenta ali drugega vira, obiskovalec pa bo prenesel datoteko z informacijami ali sledil povezavi.

Preprosta orodja se uporabljajo za prenos informacij na strežnik ali njihovo pridobivanje s strežnika. Toda njihova smiselna uporaba in uporabniku prijazna logika ni tako preprosta, ko gre za organizacijo varne, stabilne in zanesljive obdelave.

Naloži datoteko

Pojavil se je preprost koncept: nalaganje in prenašanje. Prvič, za pošiljanje datoteke v strežnik, drugič, za prejem datoteke. Pri prvi nalogi se lahko informacije preprosto prikažejo v brskalniku, v oknu na strani ali s povezavo do informacijskega vira. Za izvedbo druge naloge morate napisati obrazec za prenos datoteke in kodo za njeno obdelavo v strežniku.

Enostavna orodja za nalaganje

V tem primeru sta (1) dve možnosti za povezavo (brez PHP) za nalaganje datotek s strežnika, (2) pa obrazec za nalaganje datotek na strežnik. Pri tem je uporaba PHP bistvenega pomena. Uporabljamo naprednejšo logiko nalaganja kot običajno.

V splošnem primeru zadostuje, da v kodo strani zapišete zgornji obrazec in poskrbite za obdelavo polja $_FILES.

Shranjevanje naložene datoteke

Preverjanje imena datoteke (funkcija scCheckFileName) ni obvezno, vendar je zaradi varnosti priporočljivo. Prepoznajte spletno stran pravila za naložene datoteke je ključ do zanesljivo delovanje Spletni vir in spoštljivo ravnanje s strani obiskovalca.

Logika nalaganja v strežnik

Gostovanje ni enako gostovanju, vendar je uporaba ruskih črk in nekaterih znakov v imenih datotek polna. Datoteko lahko "zapiše", nato pa je ne prebere ali izbriše. Da bi se izognili dvoumnostim, je najbolje, da datoteko preimenujete in shranite pod imenom, ki ga bo ustrezno sprejel vsak gostitelj.

V tem kontekstu nalaganje datotek v strežnik: PHP + MySQL. Jezik se uporablja za nalaganje datoteke. Povezava med dejanskim imenom datoteke in edinstvenim imenom se določi v podatkovni zbirki in se samodejno ustvari. Najpreprostejša rešitev, kako pridobiti pravo ime datoteke, njena koda MD5 pa je edinstveno zaporedje 32 bajtov. Pri nalaganju datoteke v strežnik se PHP v strežniku "omogoči" prek AJAX-a.

Zagon PHP prek AJAX-a

Funkcija scfCheckFile() kodira pravo ime datoteke, ustvari edinstveno kodo MD5 in zažene mehanizem za prenos podatkov prek AJAX-a. Na tej točki strežnik ne naloži datoteke, temveč le preveri njen obstoj glede na edinstveno kodo. Če take datoteke ne najdete, se ustvari novo ime datoteke in v vnos tabele se doda zapis o začetku prenosa.

Funkcija scfGetFile() potrdi, da je bila datoteka naložena, in zagotovi posodobitev zapisa o datoteki.

Rezultat: datoteka naložena, zapis v tabeli ustvarjen. Nalaganje datotek v strežnik s PHP & AJAX z uporabo JavaScripta je dobra in zanesljiva rešitev.

Mehanizem AJAX za nalaganje datotek

InitXML() se uporablja za začetek prenosa podatkov AJAX. Zagon datotek PHP, JavaScript in AJAX s ponujeno kodo - varno in zanesljivo.

Zagon sistema AJAX

Prejemanje odgovora iz strežnika je urejeno s funkcijo WaitReplySC(). Spodaj desno imate kodo za dve situaciji: prvič, za preverjanje, ali datoteka obstaja, in drugič, za izvedbo dejanskega prenosa.

Odziv AJAX strežniku

Možnosti kodiranja se lahko razlikujejo, pomembno pa je, da gumb za prenos ni aktiven, dokler ga strežnik ne izbere in preveri.

Logika postopka nalaganja

Koda strežnika PHP

Strežnik mora preveriti, ali je datoteko mogoče naložiti. Ovire za nalaganje so odvisne od trenutne naloge, vendar je vedno pomembno, da ne prepišete informacij, tj. da v PHP večkrat predvidite in blokirate nalaganje v strežnik.

To težavo najlažje rešite tako, da ustvarite tabelo v podatkovni zbirki MySQL in v njej označite vsak prenos v eni vrstici. Tu lahko shranite pravo ime datoteke, njeno končnico, datum nalaganja, spremljate postopke nalaganja itd.

Koda za preverjanje imena datoteke

To je koda za preverjanje, ali datoteka obstaja po svojem edinstvenem imenu. Funkcija $oBase NewViuq() določi edinstveno ime za element nalaganja in ga nastavi na pravo ime datoteke.

Strežnikova koda za nalaganje datoteke

Če preverjanje imena je bil uspešen, obiskovalec klikne na gumb za prenos in mehanizem AJAX sproži prenos datoteke na strežnik. Koda PHP popravi vnos v tabelo MySQL in ustvari naslednji rezultat:

Rezultat prenosa datoteke

V datotečnem sistemu se je pojavil še en element in vrstica tabele te datoteke je dobila končno vsebino. Polje f_status vsebuje naslednji znak "N", Prenesena datoteka še ni bila obdelana.

Logika izmenjave podatkov

Zaradi razširjenosti *docx, *.xlsx, *.pdf in arhivi so pripeljali do ne povsem pravilnega koncepta: HTML & PHP, ki prenaša datoteke s strežnika, je povezava do njih. To ne pomeni nujno, da obiskovalec prenaša. Programer pogosto preprosto odpre datoteko v brskalniku in si jo ogleda.

Številna opravila vključujejo spreminjanje informacij v teh datotekah. Uslužbenec, ki upravlja spletno mesto, preveri niz dejanskih datotek, jih prenese, spremeni in pošlje nazaj na strežnik. Ta logika povzroča velik promet, preobremenjuje komunikacijske kanale ter otežuje vzdrževanje in upravljanje spletnega vira.

Seveda je nemogoče spremeniti vzpostavljen sistem informacijskih odnosov v določenem podjetju. Če je organizacija datotek prednostna, jo je treba optimizirati. Če je možnost pretvorbe datotek v podatke in neposrednega dela z njimi, potem je idealno: prenos, pretvorba v aktivno obliko, ki omogoča spreminjanje vsebine s pomočjo njenih elementov. Ko je treba datoteko naložiti iz strežnika, se pretvori v trenutno posodobljeno stanje in pošlje potrošniku.

Članki na tem področju