Ciao,
Devo stampare in output su browser un immagine che è contenuta come tipo binario in un database mysql.
Il problema sarebbe semplice da risolvere in una situazione normale: e cioè prendo i dati dal DB creo l'img con le funzioni GD mando l'header con il mime type giusto, stampo l'immagine e infine la distruggo. Dove voglio stampare la pagina poi faccio [img]displayImage.php?&id=xx[/img] ok?
Io invece ho delle classi impostate grosso modo come un pattern factory (dico grosso modo perchè php4 è un po' limitato per la OOP quindi mi sono dovuto arrangiare) che mi generano a seconda del tipo di file un oggetto diverso. In particolare si possono generare due tipi di oggetto:
1. Immagini
2. Attachments (per gli altri tipi di documenti contenuti nella base di dati).
Ogni sezione del mio sito istanzia oggetti Immagini e/o Attachments diversi in modo che posso abbinare per esempio ad una news la sua immagine o il pdf dell' articolo.
Per quanto riguarda le immagini le istanze delle classi ObjImages vengono fatte prima di processare l'output HTML in modo da avere uno pseudo meccanismo di cache e in modo da dover fare meno query possibili al DB.
Ora il problema è:
Un metodo della classe ObjImages mi ritorna il content binario della mia immagine, come faccio a stamparlo a video nella posizione voluta?
Io avevo pensato di utilizzare il salvataggio con le GD su file, ma poi diventerebbe troppo oneroso gestirsi i duplicati e si rischia di fare un casino.
Un' altra idea era quella di passare il content binario di un immagine via $_GET in modo da poter utilizzare il sistema <img src="displayImage.php?&img=$imgContent> ma poi ho pensato che è da pazzi mandare da 100K a 1MB di dati via querystring.
Non ho più soluzioni
Avete qualche idea?
Ciao