A fájlok szerverre történő feltöltésének logikája: php, javascript és ajax

A webes erőforrás egy "pont" a világháló információs terében. A rajta megjelenített információkat általában statikusan mutatják be, a látogató pedig megtekinti azokat. Megadhat egy linket egy dokumentumhoz vagy más erőforráshoz, a látogató pedig feltölt egy fájlt információkkal, vagy követi a linket.

Egyszerű eszközöket használnak az információk átvitelére vagy fogadására a szerverről. De ésszerű alkalmazásuk és kényelmes felhasználási logikájuk nem olyan egyszerű, ha biztonságos, stabil és megbízható adatfeldolgozást kell szervezni.

Fájl Feltöltés

Volt egy egyszerű ötlet: van feltöltés és letöltés. Az első a fájl elküldése a szerverre, a második a fogadása. Az első feladat végrehajtásához az információk egyszerűen megjeleníthetők a böngészőben, az oldal egyik ablakában, vagy hivatkozhatnak egy információs erőforrásra. A második feladat végrehajtásához elegendő egy fájlfeltöltési űrlapot és annak feldolgozási kódját írni a szerveren.

Egyszerű letöltési eszközök

Ebben a példában (1) két lehetőség van egy linkre (PHP használata nélkül) fájlok letöltésére a szerverről, (2) van egy űrlap a fájlok szerverre történő átviteléhez. Itt a PHP használata alapvetően. A szokásosnál progresszívebb betöltési logikát használnak.

Általában elegendő az adott űrlapot az oldalkódba írni, és biztosítani a $_FILES tömb feldolgozását.

A letöltött fájl mentése

A fájlnév ellenőrzése (az scCheckFileName függvény) nem előfeltétel, de a biztonság és a megbízhatóság érdekében tanácsos ezt megtenni. Meghatározása szabályok minden feltöltött fájl a kulcs a megbízható működéshez egy webes erőforrásról és a látogató tiszteletteljes hozzáállásáról.

A szerverre történő feltöltés logikája

A tárhely különbözik a tárhelytől, de az orosz betűk és néhány karakter használata a fájlnevekben veszélyt jelent. "Megírhatja" a fájlt, de aztán "nem tudja" elolvasni vagy törölni. A bizonytalanságok elkerülése érdekében jobb, ha azonnal átnevezi a fájlt, és olyan név alatt menti el, amelyet bármely tárhely megfelelően kezel.

Ebben az összefüggésben fájlok feltöltése a szerverre: PHP + MySQL. A fájl letöltéséhez használt nyelv. Az adatbázison keresztül társulás jön létre a valódi fájlnév és az egyedi név között, amely automatikusan létrejön. A legegyszerűbb megoldás, hogyan juthat el MD5 kódja a valódi fájlnévből 32 bájt egyedi sorozata. Fájlok szerverre történő feltöltésével a PHP" engedélyezve " van a szerveren az AJAX segítségével.

PHP futtatása AJAX-on keresztül

Itt az scfCheckFile () függvény kódolja a valódi fájlnevet, létrehoz egy egyedi MD5 kódot, és elindítja az adatátviteli mechanizmust az AJAX segítségével. Ebben a pillanatban a szerver nem tölti le a fájlt, hanem csak egyedi kóddal ellenőrzi annak jelenlétét. Ha nem található ilyen fájl, akkor egy új fájlnév jön létre, és a táblázat sorába kerül egy bejegyzés a letöltés kezdetéről.

Az scfGetFile () függvény megerősíti, hogy a fájl feltöltésre került, és biztosítja a róla szóló rekord frissítését.

Ennek eredményeként: a fájl betöltődik, egy bejegyzés jön létre a táblázatban. Fájlok feltöltése a szerverre PHP-ben & Az AJAX JavaScript használata jó és megbízható megoldás.

AJAX mechanizmus fájlok feltöltésére

Az AJAX adatátvitelt az InitXML()kezdeményezi. függvény fájlokat feltölteni a szerverre PHP, JavaScript és AJAX a javasolt kódot-biztonságosan és megbízhatóan.

Az AJAX elindítása

A szerver válaszát a waitreplysc() függvény hajtja végre. A jobb alsó sarokban két helyzet kódja található: a fájl jelenlétének ellenőrzése a letöltés előtt, valamint a tényleges letöltési eljárás.

Válasz az AJAX szerverre

A kódolási lehetőségek eltérőek lehetnek, fontos, hogy a fájlfeltöltés gomb Ne legyen aktív, amíg a szerver nem választja ki és nem ellenőrzi.

A betöltési folyamat logikája

Szerver kód PHP-ben

A kiszolgálónak ellenőriznie kell, hogy a fájl letölthető-e. A letöltés akadályait a megoldandó feladat határozza meg, de mindig fontos, hogy ne törölje az információkat, vagyis blokkolja a fájlok letöltését a szerverre a PHP-ben.

A probléma megoldásához a legegyszerűbb módja annak, hogy hozzon létre egy táblázatot a MySQL adatbázisban, és jelölje meg az egyes fájlok letöltését egy sorral. Itt tárolhatja a fájl valódi nevét, kiterjesztését, letöltési dátumát, nyilvántartást vezethet a rajta végzett műveletekről stb.

Szerveroldali fájlnév ellenőrző kód

Ez a kód a fájl jelenlétének ellenőrzésére az egyedi nevével. A $oBase newviuq () adatbázisobjektum függvénye meghatározza a betöltött elem egyedi nevét, majd a valódi fájlnévnek megfelelően helyezi el.

Szerver fájl feltöltési kód

Ha a név ellenőrzése sikeres volt, a látogató rákattint a Feltöltés gombra, és az AJAX mechanizmus elindítja a fájlok feltöltését a szerverre. A PHP kód korrigálja a bejegyzést a MySQL táblában, és a következő eredményt kapja:

Fájl feltöltési eredmény

Egy másik elem jelent meg a fájlrendszerben, ennek a fájlnak a táblázatsora kapta meg a végső tartalmat. Az Állapot mező (f_status) tartalmazza a szimbólumot "N", , vagyis a letöltött fájlon még nem történt művelet.

Adatcsere logika

A *docx fájlok mindenütt jelenlévő terjesztése, *.xlsx, *.a pdf és az archívumok helytelen koncepció kialakulásához vezettek: HTML & A PHP fájlok letöltése a szerverről egy link hozzájuk. Ugyanakkor egyáltalán nem szükséges, hogy a látogató letöltse az elemet. Gyakran a programozó csak megnyitja a fájlt a böngészőben megtekintésre.

Számos feladat magában foglalja az ilyen fájlok információinak megváltoztatását. A webhelyet adminisztráló cég alkalmazottja ellenőrzi az aktuális fájlok halmazát, letölti, módosítja, majd visszaküldi a szerverre. Ez a logika jelentős forgalmat okoz, betölti a kommunikációs csatornákat, és időigényessé teszi mind a webes erőforrás fenntartását, mind a vele való munkát.

Természetesen lehetetlen megváltoztatni az információs kapcsolatok meglévő rendszerét egy adott vállalatnál. Ha elsőbbséget kap a fájlszervezés, akkor azt optimalizálni kell. Ha ez lehetséges, hogy átalakítsa a fájlokat az adatok és velük dolgozni közvetlenül, akkor az ideális megoldás az lenne: feltöltés, konvertáló őket egy aktív formában, amely lehetővé teszi, hogy megváltoztatja a tartalmat annak elemeit. Ha le kell töltenie egy fájlt a szerverről, akkor azt az aktuális frissített állapotba konvertálja, majd elküldi a fogyasztónak.

Cikkek a témában