ho uno strano problema per un progetto universitario cui sto lavorando e su cui spero voi possiate portare un po' di luce
tramite un form carico in post un file di tipo immagine; l'action del post punta ad una pagina chiamata upload.php
in questa pagina, però, al contrario di quello che normalmente si fa, non sposto il file uppato nell'opportuna locazione del file system, ma creo una istanza della classe Photo. Questa mia classe accetta come parametri l'immagine sotto forma di dati raw (cosi' come preso dal post mediante l'array $_FILES) ed una serie di parametri come il nome, il tipo e così via. Il costruttore di questa classe si preoccupa, poi, di memorizzare in un campo privato al suo interno l'immagine (mediante la funzione GD imagecreatefromstring() e di creare una thumbnail di opportune dimensioni (funzione imagecopyresampled()) e di memorizzare anch'essa in un opportuno campo private.
a questo punto io ho l'oggetto Photo contenente al suo interno fisicamente le due immagini.
ora ho necessità che nella pagina upload.php sia visualizzata la thumbnail dell'immagine appena creata. La soluzione più elegante, a mio giudizio, è quella di utilizzare un metodo __tostring che restituisca direttamente la stringa html, così che possa fare qualcosa del tipo:
ed ottenere ad esempio:codice:// supponendo che $pippo sia un oggetto Photo valido echo $pippo;
potete quindi immaginare il mio problema: le due immagini non sono nel file system! sono state appena create ed esistono solo ed esclusivamente nello scope dell'istanza $pippo. Non so dove far "puntare" i due tag html!codice:<a href="<indirizzo immagine originale" title="<descrizione>">[img]<indirizzo thumbnail>[/img]
la classe Photo ha, naturalmente, due campi pubblici getImage e getThumbnail che settano nell'header l'opportuno Content-type e restituiscono l'immagine, ma come potete immaginare ciò non mi aiuta a risolvere il problema che, formalmente, penso di poter riassumere in: come esaudire una request http separata con un oggetto che esiste solo nello scope della request corrente?
l'unica cosa che mi viene in mente è quella di memorizzare $pippo in una variabile di sessione, con un nome molto univoco, e nei tag html chiamare un file php che recupera $pippo e chiama showImage e showThumbnail, ma non c'è una soluzione migliore?