Ho avuto un momento difficile con quello che deve essere un compito incredibilmente normale. Carico e salvi le immagini sul mio server web e salva il percorso del file nel database MySQL (funziona tutto). La cosa che non funziona è recuperare un file immagine dal server e visualizzarlo sulla pagina tramite ajax.come inviare immagine png dal server per visualizzare nel browser tramite ajax
Originariamente stavo cercando di recuperare il percorso dal database e aggiornare l'attributo src
del tag con il percorso dell'immagine. Funzionava, ma in questo modo tutte le immagini si trovano in una cartella sul server dove tutti hanno accesso ad esse. Questo non è buono. Posso solo avere le immagini che appartengono a determinati utenti accessibili da questi utenti.
Per limitare l'accesso a queste foto ho aggiunto una direttiva Apache su quella cartella, che ha limitato l'accesso con successo. Il problema quindi è diventato che non sono riuscito a visualizzare le immagini nel browser impostando l'attributo src
su quel percorso. Vedere il mio post: https://serverfault.com/questions/425974/apache-deny-access-to-images-folder-but-still-able-to-display-via-img-on-site
Infine ho imparato che devo usare PHP per leggere i dati dell'immagine direttamente dal server e inviare questi dati al browser. Ho usato la funzione file_get_contents(), che funziona per convertire il file immagine (PNG) sul server in una stringa. Ritorna questa stringa al browser in una chiamata Ajax. La cosa che non riesco a ottenere è: come convertire questa stringa in un'immagine usando JavaScript?
Vedi questo codice:
$.ajax({
url: get_image.php,
success: function(image_string){
//how to load this image string from file_get_contents to the browser??
}
});
Perché non aggiornare semplicemente l'attributo src di un tag img con javascript? È possibile avere il punto src su uno script php che accetta valori interi che si associano alle immagini e hanno il lato server script PHP che fa eco al contenuto del file. – GordonM
Si potrebbe fare lo src dell'immagine essere il file php: '' Quindi utilizzare PHP per produrre l'immagine direttamente –
In Net, faremmo un gestore di richiesta che avrebbe preso un parametro e restituire il contenuto come se era una richiesta normale. Non conosco abbastanza bene PHP per sapere se c'è qualcosa di simile disponibile, ma sono sicuro che si potrebbe fare qualcosa. Il concetto di base è che si imposta l'URL del CSS immagine/immagine di sfondo su qualcosa del tipo: 'http: //myserver.com/getfile.php? Q = myimage.jpg' Il server quindi apre il file, ottiene i contenuti e lo invia come normale risposta htt. – Shmiddty