Blob non è solamente il titolo di un film del 1958, dove una massa informe uccideva la gente, ma è pure l’acronimo di un tipo di dato dei database, e significa: Binary Large OBject
Il campo Blob contraddistingue un dato binario, che può essere immagazzinato direttamente in database. Ad esempio una immagine, invece di salvarla nel file system (HD del server) è possibile caricarla direttamente nel record del DataBase, permettendo un maggior ordine nei dati. Attenzione: non tutto è ora quello che luccica. In questo modo (nel caso di servizi internet) i file binari dovranno essere comunque letti dal DataBase, trasferiti sul WebServer e quindi condivisi: c’è un passaggio di trasmissione dati in più!
Nel sito Awads.net c’è un ottimo tutorial che spiega perfettamente come gestire i Blob utilizzando Coldfusion e, in questo caso, un DataBase Oracle. Non è comunque un problema utilizzare la medesima tecnica per altri DataBase, sempre che supportino i Blob.
Aggiungo all’articolo solo alcuni passaggi particolari.
Se dovete inviare un file ad una pagina per immagazinarlo in un Blob, il form deve essere fatto in questo modo:
<input name="FileName" type="file">
Per ricevere il file la pagina "upload_action.cfm" dovra prima scaricarlo in una cartella temporale:
Quindi leggerlo in modo binario e salvarne il contenuto in una variabile:
Quindi salvarlo nel DB (tramite un Insert o un Upload):
insert into files (file_content) values ( <cfqueryparam value="#file_blob#" cfsqltype="cf_sql_blob"> )
</cfquery>
Per leggere il Blob in coldfusion dal DB e renderlo disponibile, è altrettanto facile.
Dapprima setto il tipo di oggetto per la condivisione, in questo caso come "allegato" di nome "myFile.xls":
Recupero il dato dal DB:
select file_content from files where id_file = 10
</cfquery>
Lo rendo disponibile:
Quest’ultimo procedimento è un po’ come la pubblicazione di RSS o file XLS prodotti in Coldfusion.
Ricordo che il procedimento è opera dell’autore della pagina anche qui linkata, ho solo fatto alcuni appunti in italiano.
heheh
1)
http://www.etechs.it/howto/database/load-file-into-LOB-field.php
2)
http://www.etechs.it/programming/cfusion/lob-field-with-cold-fusion.php
3)
http://www.etechs.it/howto/database/Oacle-DBMS_LOB-functions.php
4)
http://www.etechs.it/programming/cfusion/CLOB-Oracle-ColdFusion.php
un’altro po’ di cosine in più 🙂
Che fai spammi? Scherzo: grazie mille per i riferimenti