Logika učitavanja datoteka na server: php, javascript i ajax

Web resurs je "tačka" u informacionom prostoru world Wide Weba. Informacije prikazane na njemu obično su predstavljene statički, a posjetilac ih pogleda. Možete odrediti vezu do dokumenta ili drugog resursa i posjetilac će učitati fajl sa informacijama ili pratiti vezu.

Jednostavni alati koriste se za prijenos informacija ili njihovo primanje sa servera. Ali njihova razumna upotreba i praktična logika upotrebe nisu tako jednostavni kada je potrebno organizirati sigurnu, stabilnu i pouzdanu obradu podataka.

Učitavanje Datoteke

Postojala je jednostavna ideja: postoji upload i preuzimanje. Prvi je slanje datoteke na server, drugi je primanje. Za implementaciju prvog zadatka, informacije se mogu jednostavno prikazati u pretraživaču, u prozoru na stranici ili dati link do informacionog resursa. Da biste implementirali drugi zadatak, dovoljno je na server napisati obrazac za prijenos datoteke i njegov kôd za obradu.

Jednostavni alati za preuzimanje

U ovom primjeru (1) - dvije opcije za vezu (bez upotrebe PHP-a) preuzimanje datoteka sa servera, (2) - obrazac za prijenos datoteka na server. Ovdje je upotreba PHP-a u osnovi. Koristi se progresivnija logika učitavanja nego inače.

Općenito, dovoljno je upisati dati obrazac u kod stranice i omogućiti obradu niza $_FILES.

Spremanje preuzete datoteke

Provjera naziva datoteke( funkcija scCheckFileName) nije preduslov, ali je poželjno to učiniti radi sigurnosti i pouzdanosti. Definisanje pravila za svaki učitani fajl je ključ za pouzdan rad web resursa i tretiranje s poštovanjem sa strane posjetitelja.

Logika učitavanja na server

Hosting je različit za hosting, ali korištenje ruskih slova i nekih znakova u nazivima datoteka predstavlja opasnost. On može" napisati " fajl, ali onda "neće moći" da ga pročita ili izbriše. Da biste izbjegli neizvjesnosti, bolje je odmah preimenovati fajl i sačuvati ga pod imenom koje će svaki hosting adekvatno tretirati.

U ovom kontekstu, učitavanje datoteka na server: PHP + MySQL. Jezik se koristi za preuzimanje datoteke. Kroz bazu podataka uspostavlja se asocijacija između stvarnog imena datoteke i jedinstvenog, koji se formira automatski. Najjednostavnije rješenje, za kako doći njegov MD5 kod iz stvarnog imena datoteke jedinstven je niz od 32 bajta. Otpremanjem fajlova na server, PHP je" omogućen " na serveru preko AJAX-a.

Pokretanje PHP-a preko Ajaxa

Ovdje funkcija scfCheckFile () kodira pravo ime datoteke, generira jedinstveni MD5 kod na osnovu nje i pokreće mehanizam prijenosa podataka putem Ajaxa. U ovom trenutku server ne preuzima fajl, već samo proverava njegovo prisustvo jedinstvenim kodom. Ako takva datoteka nije pronađena, generira se novo ime datoteke, a unos o početku preuzimanja stavlja se u red tablice.

Funkcija scfGetFile() potvrđuje da je datoteka učitana i osigurava ažuriranje zapisa o njoj.

Kao rezultat: datoteka se učitava, formira se unos u tabeli. Otpremanje datoteka na server u PHP-u & AJAX korišćenje Javascripta je dobro i pouzdano rešenje.

AJAX mehanizam za učitavanje datoteka

AJAX prenos podataka pokreće InitXML(). funkcija za otpremanje datoteka na server u PHP - u, JavaScript-u i Ajaxu sa predloženim kodom-sigurno i pouzdano.

Lansiranje Ajaxa

Primanje odgovora sa servera izvršava funkcija WaitReplySC (). U donjem desnom uglu nalaze se kodovi za dvije situacije: provjera prisutnosti datoteke prije preuzimanja i stvarni postupak preuzimanja.

Odgovor na AJAX server

Opcije kodiranja mogu biti različite, bitno je da dugme za otpremanje datoteke nije aktivno dok ga server ne izabere i proveri.

Logika procesa učitavanja

Server kod u PHP-u

Server treba provjeriti da li se datoteka može preuzeti. Prepreke za preuzimanje određene su zadatkom koji se rješava, ali uvijek je važno ne brisati informacije, odnosno osigurati i blokirati preuzimanje datoteka na server u PHP-u.

Da biste riješili ovaj problem, najlakši način je da kreirate tabelu u MySQL bazi podataka i označite preuzimanje svake datoteke tamo jednim redom. Ovdje možete pohraniti pravo ime datoteke, njenu ekstenziju, datum preuzimanja, voditi evidenciju o operacijama na njoj itd.

Verifikacioni kod Imena datoteke na strani servera

Ovo je kod za provjeru prisutnosti datoteke po jedinstvenom imenu. Funkcija objekta baze podataka $oBase NewViuq () definira jedinstveno ime za učitani element i stavlja ga u skladu sa stvarnim imenom datoteke.

Kod za otpremanje datoteke servera

Da provjera imena bio uspešan, posetilac klikne na dugme za otpremanje i AJAX mehanizam inicira otpremanje datoteka na server. PHP kod koriguje unos u MySQL tabeli i dobija se sledeći rezultat:

Rezultat prijenosa datoteke

Još jedan element pojavio se u sistemu datoteka, a red tabele ove datoteke dobio je konačni sadržaj. Statusno polje (f_status) sadrži simbol "N", , odnosno, još nije bilo operacija na preuzetoj datoteci.

Logika razmjene podataka

Sveprisutna distribucija * docx datoteka, *.xlsx, *.pdf i arhivi doveli su do formiranja netačnog koncepta: HTML & PHP preuzimanje datoteka sa servera je veza do njih. Istovremeno, uopšte nije neophodno da posetilac preuzme element. Često programer samo otvara datoteku u pretraživaču za pregled.

Mnogi zadaci uključuju promjenu informacija u takvim datotekama. Zaposleni u kompaniji koji administrira sajt proverava skup trenutnih datoteka, preuzima ih, modifikuje i šalje nazad na server. Ova logika uzrokuje značajan promet, učitava komunikacijske kanale i čini ga dugotrajnim i za održavanje web resursa i za rad s njim.

Naravno, nemoguće je promijeniti postojeći sistem informacionih odnosa u određenoj kompaniji. Ako se prioritet daje organizaciji datoteka, onda je treba optimizirati. Ako jeste moguće je pretvoriti datoteke u podatke i direktno raditi s njima, tada bi idealna opcija bila: učitavanje, pretvaranje u aktivni oblik koji omogućava promjenu sadržaja po njegovim elementima. Kada je potrebno preuzeti fajl sa servera, on se konvertuje u trenutno Ažurirano stanje i šalje potrošaču.