Ottenere l'immagine dall'utente
Vedi http://php.net/manual/en/reserved.variables. files.php
e http://php.net/manual/en/features.file- carica.php
e amici per i dettagli su come usare $_FILES
per ricevere il caricato.
Una volta che hai l'immagine in una variabile, pronuncia $jpg
, non utilizzare alcuna funzione di codifica/decodifica del testo; si limiterà a storpiare le cose. I diversi approcci seguenti indicheranno cosa fare per evitare di inciampare su codici a 8 bit.
Esistono tre modi per presentare l'immagine, ciascuno alquanto complesso
Memorizzazione dell'immagine nel database; mostrando l'immagine in linea
Ho usato questo approccio per le miniature, ma non lo consiglio per le immagini di grandi dimensioni.
Conservalo in un MEDIUMBLOB
in una tabella, usa bin2hex()
in PHP per trasformare l'immagine in una stringa. Quindi usa INSERT ... VALUES (UNHEX('...'))
per tornare al binario sul lato server MySQL.
Dopo aver ricaricato, chiedi al PHP di riferimento di dire qualcosa del tipo
$b64 = base64_encode($blob);
echo "<img src='data:image/jpeg;base64,$b64'/>";
Memorizzazione dell'immagine nel database; Script PHP per generare immagini
Lo uso quando voglio usare le funzioni "image*" di PHP per modificare l'immagine prima di visualizzarla. Dal momento che questo è più complicato di quanto probabilmente serva, esaminerò solo ciò che deve essere fatto.
L'html per la pagina invocherebbe un altro script, con tutti gli argomenti di cui hai bisogno:
<img src=modify.php?this=stuff&that=stuff>
Quindi in modify.php
, inizia con
header('Content-type: image/jpeg');
E finisci con questo (supponendo che tu stia costruendo un JPEG):
imagejpeg($im);
Memorizzare l'immagine in un file
Questo è il modo preferito in cui la maggior parte dei grandi siti web lo fa per la maggior parte del tempo.
Se il tuo file proviene da un caricamento, qualcosa del genere lo sposta in un percorso migliore senza dover toccare il jpg.
$tmpfile = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmpfile, $uploadfile);
Maggiori informazioni ed esempi:http://php.net/manual/ it/function.move-uploaded-file.php
Nell'HTML, genera semplicemente qualcosa come questo:
<img src=path/to/file>
Fai qualche ricerca su dove puoi inserire le immagini nel percorso del tuo server e assicurati che le autorizzazioni siano adeguate.
Nota:il database non è coinvolto nella conservazione dell'immagine, ma ha una colonna per contenere l'URL "path/to/file"
:
image VARCHAR(255) NOT NULL
Per ulteriori discussioni
- In quale delle 3 tecniche vorresti approfondire?
- Vediamo l'HTML che stai generando.
- Vediamo
SHOW CREATE TABLE
.