Newsgroup: it.comp.www.php
Titolo: Elenco icone campo blob

Salve,
premesso che ho realizzato già delle pagine che permettono di inserire
delle immagini in campi blob e poi richiamandole da link riesco a
visualizzarle, vorrei sapere se è possibile realizzare una pagina che
visualizzi un elenco di icone memorizzate in campi blob.
Vorrei insomma che l'immagine mi venga "stampata" direttamente sulla
pagina senza essere richiamata dal link.
Infatti si tratta di una galleria di immagini ed è indispensabile
visualizzare un elenco di icone.
Qualcuno mi aiuta?
Grazie infinite.
Francesco.

franc...@gmail.com
 ha scritto:

Perdonami se mi permetto di fuorviarti, ma per quanto ne so, è 
sconsigliato memorizzare immagini direttamente nel database, nonostante 
l'esistenza dei campi blob concepiti ' all'incirca ' anche per questo 
motivo.
E' pratica più comune memorizzarvi solamente il link.
Non riesco però a capire la differenza fra linkare l'immagine e 
'stamparla', cosa cambia in termini di prestazioni / codice / 
leggibilità / usabilità ?
YUS

 
francolu...@gmail.com
 ha scritto:

Semplicemente perchè, trattandosi di una galleria fotografica, vorrei
visualizzare l'anteprima delle foto attraverso delle icone; queste
ultime risiedono in campi blob, ma da quanto ho visto è possibile
visualizzarle solo richiamandole da pagine esterne.
Ciao.

 icone.
Per come funziona HTML, non puoi.
Per ogni immagine devi richiamare uno script php che estrae l'immagine dal 
blob e la renderizza al volo.
Bye.

 Ciao.
Ma con icone intendi thumbnails ? Miniature delle immagini ?
O intendi delle icone tipo quelle associate alle estensioni dei file
(icona di un file jpg, icona di un file testo, icona di un eseguibile).
Perché non crei le thumbnail (magari in automatico sfruttando le 
librerie GD quando fai l'inserimento delle immagini nella gallery) e le 
salvi su disco, mettendo poi il loro link nel database ?
Se rinomini in maniera intelligente immagine e miniatura non hai neanche 
bisogno di salvare i due link, ma puoi costruire i link della thumb al 
volo, tipo $path/$imagename-mini.$filetype, e su disco avresti salvato 
pippo.jpg e pippo-mini.jpg
Se le immagini non sono molto grandi, puoi semplicemente fare un resize 
dell'immagine con html, dando le dimensioni della thumb.
Un resize fatto al volo con le GD sarebbe più elegante (potrebbe 
risultare però prestazionalmente svantaggioso, dipende dalla quantità di 
immagini).
Ciao!
YUS

 Qualcuno mi aiuta?
Come dice YUS, ti conviene memorizzare solo il percorso delle immagini e
tenerle fuori dal db. Comunque non vedo problemi nel renderizzare
un'elenco di anteprime. Se hai il supporto GD, puoi ad es. utilizzare la
semplice createthumb(). Vedi 
http://icant.co.uk/articles/phpthumbnails/
Ciao, F.


Vi ringrazio molto per i consigli che apprezzo moltissimo perchè
sicuramente validi ed indicano la soluzione ottimale, ma la mia
soluzione riguarda un problema diverso.
In passato ho sempre usato il metodo da voi consigliato: con GD creavo
sia foto che miniature su una cartella sul server e poi dei dati
riferiti alla foto nel database (link, estensione, dimensione, ecc.).
Adesso sto realizzando un'applicazione che risiede su un server che
deve essere in grado di visualizzare anche immagini presenti su server
esterni.
Dal server "principale" riesco a leggere il database esterno quindi se
fossi capace di visualizzare le miniature utilizzando i campi blob
avrei risolto.
In sostanza il mio problema sarebbe visualizzare con un controllo if
l'esistenza delle miniature su server esterni ed nel caso negativo
visualizzare una miniatura di default con un link diverso. Ma non ci
sono riuscito perchè le funzioni di controllo ( es. function
url_exists con fsockopen) non funzionano verso server esterni chiusi.
Inoltre le immagini memorizzate nei blob mi consentirebbero di:
- con un unico salvataggio salvare dati e foto;
- cancellare le foto anche dall'esterno.
Spero di aver chiarito il mio intento. Ovviamente sono pronto ad
accettare consigli alternativi.
Ciao e grazie.
Francesco.

 Spero di aver chiarito il mio intento.
Scusami, sarà che sono stanco, ma io non ho ancora capito esattamente
cosa intendi dire quando dici che "richiamandole da link riesco a
visualizzarle" ma che non riesci a renderizzarle su una pagina web.
Allora tu da $server_1 ti connetti al db su $server_2, prelevi
l'immagine, la porti su $server_1 e... cosa ne fai di preciso?
perché non puoi crearne una thumbnail al volo e visualizzarla?
Hai un "link". Vuol dire che hai memorizzato l'immagine sul server?
<img src="$link" style="height: 64px; width: 64px;" /> cosa fa?
Ciao, Francesco