Fájl feltöltés működése
A fájl feltöltés alap logikája és működése.
2022.01.12 — Posted by Webb & Flow
Fájl mappák
Fájlokat jelenleg három mappába lehet feltölteni:
Content images
Azok a képek kerülnek ide, amik a tartalmak központi részében fognak megjelenni. Ezek közül a képk közül lehet választani a PIC típusú ExternalData mezőkben is.
A mappába kizárólag képeket (webp, jpg, png, gif) lehet feltölteni.
Media files
Azok a fájlok kerülnek ide, amiket a tartalmakban be akarunk linkelni, illetve a File típusú ExternalData mezőkben be akarunk állítani.
A mappába kizárólag pdf és rtf fájlokat lehet feltölteni.
Design files
Minden olyan fájl, ami nem egy konkrét tartalomhoz, hanem a weblap megjelenéséhez szükséges.
Ilyen fájlok lehetnek:
- Logo
- Header, footer, oldalsó keret, illetve bármilyen grafikai elem megjelenéséhez szükséges képek
- Font fájlok
A CSS és Javascript fájlokat nem ide kell feltölteni, azoknak külön helye van.
Ajánlott folyamat a feltöltésre
A fájlok tartalmát minden esetben Base64 kódolt string-ként kell feltölteni.
Amennyiben a fájl 300kB-nál kisebb, közvetlenül fel lehet tölteni, lásd a File entitás content mezejét.
Ha a fájl nagyobb, mint 300kB, érdemes több szeletben feltölteni, és ezeket utólag összefűzni.
Ezzel a módszerrel egy-egy API hívás rövidebb ideig fut és meg lehet jeleníteni a felületen egy progress bar-t a feltöltés aktuális állásáról.
- fájl beolvasása frontend oldalon, a méret alapján a szeletek számának meghatározása
- TempFile létrehozása
- TempFile szeleteinek feltöltése egymás után
- File bejegyzés létrehozása vagy módosítása, a TempFile behivatkozása a content mezőben
Fontos, hogy a szeletek a fájl tartalmának Base64 kódolt string-jének szeletei és nem az eredeti bináris tartalmat kell felvágni, és utána kódolni.