5: Uploads
De image en file veldtypes beheren uploads van begin tot eind: opslag, getokeniseerde URL's en, voor afbeeldingen, miniaturen.
5.1: Het afbeeldingsveld
cover: field (type: 'image', title: 'Cover', list: false)
avatar: field (type: 'image', title: 'Avatar', list: false)
Een image-veld slaat twee kolommen op: de bestandsnaam (cover) en een token (cover_token). Bij het uploaden schrijft het de originele afbeelding en een geschaalde miniatuur, en toont de miniatuur in de recordweergave met een link naar de volledige afbeelding. Het file-veld is hetzelfde, maar zonder de afbeeldingsverwerking.
5.2: Waar bestanden naartoe gaan
De app-ingangspunt verklaart de opslagwortels:
files: dirname(__DIR__).'/data/uploads/files/',
images: dirname(__DIR__).'/data/uploads/images/',
thumbs: dirname(__DIR__).'/data/uploads/thumbs/',
Bestanden worden teruggeleverd via een getokeniseerde route, zodat URL's niet te raden zijn op basis van de rij-id. Houd data/uploads/ buiten git.
5.3: Schema kolommen
Wanneer je de tabel met de hand schrijft (zoals de SQLite-demo doet), onthoud dan dat een afbeeldingsveld uit twee kolommen bestaat:
cover TEXT, cover_token TEXT
De demo's seed.phlo creëert precies deze kolommen naast de relatiekolommen.