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.