06/09/2024 - GrandfatherCoder ha scritto:
Normalmente è così.
Se parliamo di HTTP(S), è proprio così.
06/09/2024 - GrandfatherCoder ha scritto:
Il problema è come serializzare o far passare una form multipart.
Qual è il problema?
Questa è una form multipart che invia un campo e un file in upload.
<form action="/file/upload" method="post" enctype="multipart/form-data">
<input type="text" name="description"><br>
<input type="file" name="fileToUpload"><br>
<input type="submit" name="submit">
</form>
Non serve altro.
06/09/2024 - GrandfatherCoder ha scritto:
Ho provato a servirmi dell'oggetto della classe TMultiPartForm,ma mi sembra ottimo ad incapsulare dati,ma poco pratico nel permettere di estrapolarli.
Nell'esempio che ti avevo indicato, in Request.Context.Files hai un array dei file inviati: basta accedere alle proprietà del singolo file per ottenere nome (non il percorso, per privacy), il nome assegnato al campo, lo Stream con i dati (vedi la documentazione).
Non vedo problematiche. Se hai difficoltà, spiega quali sono.
06/09/2024 - GrandfatherCoder ha scritto:
Mi farebbe comodo che i files vengano stoccati come campi Blob nel database.
Attenzione che potrebbe non essere sempre una buona idea: da un lato hai il vantaggio che ti porti i file “appresso” ai dati, dall'altro il database potrebbe “esplodere” di dimensioni, e ogni backup/restore del DB a sé stante coinvolgerebbe sempre anche i suddetti file.
La questione va analizzata attentamente.
06/09/2024 - GrandfatherCoder ha scritto:
Delphi pare avere decennale esperienza in questo campo e ci sono validi esempi in rete con Firebase.
Intendi Firebird? Ad ogni modo, non è una questione legata all'esperienza di Delphi: i campi BLOB ci sono sempre stati e ogni tool, da ADO a ODBC, li ha sempre gestiti, anche su Access dove sono più “particolari” (legati a OLE). Come tanti altri ambienti, Delphi lo ha sempre supportato, questo sì.
06/09/2024 - GrandfatherCoder ha scritto:
Ma ciò è un passo successivo..al momento vorrei riuscire a gestire una form multiparte.
Vedi le indicazioni fornite sopra.