Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [GD] visualizzazione immagini

    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

  2. #2
    ... oltre ad esser da pazzi $_GET mi sembra sia limitato un un migliaio di caratteri ...

    Potresti provare con le sessioni:
    - carichi il contenuto delle immagini in sessione
    - la pagina è inviata al client
    - il client richiederà al server le immagini
    - il server le prende dalla sessione

    Se quando il client richiede le immagini non manda il cookie con l'ID sessione puoi passarlo tramite $_GET [img]immagine.php?SID=************[/img]

    In teoria dovrebbe funzionare e ti permette di avere anche una specie di cache per ogni utente (la sessione però diventerebbe estremamente pesante).

  3. #3
    Originariamente inviato da spoon25
    ... oltre ad esser da pazzi $_GET mi sembra sia limitato un un migliaio di caratteri ...
    Lo sospettavo ...

    Cmq anche le sessioni non è che siano il massimo si appesantirebbe troppo il tutto.

  4. #4
    le istanze delle classi ObjImages vengono fatte prima di processare l'output HTML
    Se mantiene questo funzionamento da qualche parte devi metterle le immagini aspettando di mostrarle, dunque per forza di cosa c'è qualcosa che si deve memorizzare vari Kb (o addirittura Mb).

    Dunque le sessione a mio avviso è il meno peggio, le immagini vengono salvate nel file di sessione sul server e è tuo compito eliminarle appena le mostri.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.