Logika nahrávania súborov na server: php, javascript a ajax

Webový zdroj je "bod" v informačnom priestore world Wide Web. Informácie na ňom zobrazené sú zvyčajne prezentované staticky a návštevník si ich prezerá. Môžete zadať odkaz na dokument alebo iný zdroj a návštevník nahrá súbor s informáciami alebo bude nasledovať odkaz.

Na prenos informácií na server alebo ich príjem zo servera sa používajú jednoduché nástroje. Ale ich rozumná aplikácia a pohodlná logika použitia nie sú také jednoduché, keď je potrebné zorganizovať bezpečné, stabilné a spoľahlivé spracovanie údajov.

Nahrávanie súborov

Tam bol jednoduchý nápad: tam je upload a download. Prvým je odoslanie súboru na server, druhým je jeho prijatie. Na implementáciu prvej úlohy je možné informácie jednoducho zobraziť v prehliadači, v okne na stránke alebo poskytnúť odkaz na informačný zdroj. Na implementáciu druhej úlohy stačí na server napísať formulár na odovzdanie súboru a jeho spracovateľský kód.

Jednoduché nástroje na stiahnutie

V tomto príklade ( 1) - dve možnosti odkazu (bez použitia PHP) na sťahovanie súborov zo servera, (2) - formulár na prenos súborov na server. Tu je použitie PHP zásadne. Používa sa progresívnejšia logika načítania ako obvykle.

Vo všeobecnosti stačí napísať daný formulár do kódu stránky a zabezpečiť spracovanie poľa $_FILES.

Uloženie stiahnutého súboru

Kontrola názvu súboru (funkcia scCheckFileName) nie je nevyhnutným predpokladom, ale je vhodné to urobiť z dôvodu bezpečnosti a spoľahlivosti. Definovať pravidlá pre každý nahraný súbor je kľúčom na spoľahlivú prevádzku webového zdroja a úctivého prístupu k nemu zo strany návštevníka.

Logika nahrávania na server

Hosting je pre hosting iný, ale používanie ruských písmen a niektorých znakov v názvoch súborov je spojené s nebezpečenstvom. Môže súbor" napísať", ale potom ho "nebude môcť" prečítať alebo odstrániť. Aby ste sa vyhli neistotám, je lepšie súbor okamžite premenovať a uložiť pod menom, s ktorým bude každý hosting primerane zaobchádzať.

V tejto súvislosti nahrávanie súborov na server: PHP + MySQL. Jazyk sa používa na stiahnutie súboru. Prostredníctvom databázy sa vytvorí asociácia medzi skutočným názvom súboru a jedinečným názvom, ktorý sa vytvorí automaticky. Najjednoduchšie riešenie, ako sa dostať jeho kód MD5 zo skutočného názvu súboru je jedinečná sekvencia 32 bajtov. Nahraním súborov na server je PHP" povolené " na serveri cez AJAX.

Spustenie PHP cez AJAX

Tu funkcia scfCheckFile() kóduje skutočný názov súboru, na jeho základe vygeneruje jedinečný kód MD5 a spustí mechanizmus prenosu údajov cez AJAX. V tejto chvíli server súbor nestiahne, ale iba skontroluje jeho prítomnosť pomocou jedinečného kódu. Ak sa takýto súbor nenájde, vygeneruje sa nový názov súboru a do riadku tabuľky sa umiestni záznam o začiatku sťahovania.

Funkcia scfGetFile () potvrdzuje, že súbor bol nahraný a zabezpečuje aktualizáciu záznamu o ňom.

V dôsledku toho sa súbor načíta, vytvorí sa záznam v tabuľke. Nahrávanie súborov na server v PHP & AJAX pomocou JavaScriptu je dobré a spoľahlivé riešenie.

Mechanizmus Ajax na nahrávanie súborov

Prenos údajov AJAX je iniciovaný funkciou InitXML() . Nahrajte súbory na server v PHP, JavaScript a AJAX s navrhovaným kódom-bezpečné a spoľahlivé.

Spustenie Ajaxu

Prijatie odpovede zo servera sa vykonáva funkciou WaitReplySC (). Vpravo dole sú kódy pre dve situácie: kontrola prítomnosti súboru pred stiahnutím a skutočný postup sťahovania.

Ajax server response

Možnosti kódovania sa môžu líšiť, je nevyhnutné, aby tlačidlo nahrávania súborov nebolo aktívne, kým ho nevyberie a nekontroluje server.

Logika procesu načítania

Kód servera v PHP

Server by mal skontrolovať, či je možné súbor stiahnuť. Prekážky sťahovania sú určené riešenou úlohou, ale vždy je dôležité nevymazávať informácie, to znamená znova poskytovať a blokovať sťahovanie súborov na server v PHP.

Ak chcete vyriešiť tento problém, najjednoduchším spôsobom je vytvoriť tabuľku v databáze MySQL a označiť sťahovanie každého súboru jedným riadkom. Tu môžete uložiť skutočný názov súboru, jeho príponu, Dátum sťahovania, viesť záznamy o operáciách na ňom atď.

Overovací kód názvu súboru na strane servera

Toto je kód na kontrolu prítomnosti súboru podľa jeho jedinečného názvu. Funkcia databázového objektu $oBase NewViuq () definuje jedinečný názov načítaného prvku a umiestni ho do súladu so skutočným názvom súboru.

Kód na odovzdanie súboru servera

Ak kontrola mena bol úspešný, návštevník klikne na tlačidlo Nahrať a mechanizmus AJAX iniciuje nahrávanie súborov na server. Kód PHP opraví záznam v tabuľke MySQL a získa sa nasledujúci výsledok:

Výsledok nahrávania súborov

V systéme súborov sa objavil ďalší prvok a riadok tabuľky tohto súboru dostal konečný obsah. Stavové pole (f_status) obsahuje symbol "N", , to znamená, že na stiahnutom súbore ešte neboli vykonané žiadne operácie.

Logika výmeny údajov

Rozšírená distribúcia * docx, *.xlsx, *.súbory a archívy pdf viedli k vytvoreniu nesprávneho konceptu: HTML & PHP sťahovanie súborov zo servera je odkaz na ne. Zároveň nie je vôbec potrebné, aby si návštevník prvok stiahol. Programátor často otvorí súbor v prehliadači na prezeranie.

Mnoho úloh zahŕňa zmenu informácií v takýchto súboroch. Zamestnanec spoločnosti, ktorý spravuje web, skontroluje množinu aktuálnych súborov, stiahne ich, upraví a odošle späť na server. Táto logika spôsobuje značnú návštevnosť, Načítava komunikačné kanály a je časovo náročná na údržbu webového zdroja aj na prácu s ním.

Samozrejme, nie je možné zmeniť existujúci systém informačných vzťahov v konkrétnej spoločnosti. Ak je priorita daná organizácii súborov, mala by byť optimalizovaná. Ak existuje schopnosť transformovať súbory na dáta a pracovať s nimi priamo, potom ideálnou možnosťou by bolo: sťahovanie, ich konverzia do aktívnej formy, ktorá umožňuje zmenu obsahu podľa jeho prvkov. Ak je potrebné stiahnuť súbor zo servera, prevedie sa do aktuálneho aktualizovaného stavu a odošle sa Spotrebiteľovi.

Články na tému