May 3
Quando si tratta di una grande quantità di immagini, è spesso utile per memorizzarli in un database. Questo rende l'accesso e la modifica delle immagini semplice e snella, anche se è necessario modificare più di uno alla volta. Un compito comune eseguito su immagini memorizzate è quello di ridimensionare l'immagine. Caricamento e ridimensionamento di un'immagine utilizzando PHP e MySQL può essere molto semplice, e permette di fare molte cose, come creare una serie di anteprime per la vostra galleria di immagini, o semplicemente visualizzare una data immagine in un formato diverso da quello originario.
1 Crea il tuo database e la tabella in MySQL. Utilizzando l'interfaccia di MySQL, eseguire i seguenti comandi:
CREATE DATABASE test;
Test d'uso;
CREATE TABLE immagini (
image_id serial,
filename VARCHAR (255) non nullo,
mime_type varchar (255) non nullo,
file_size non int null,
file_data LONGBLOB non nullo,
chiave primaria (image_id),
indice (nome del file)
);
2 Utilizzare un editor di testo per creare un file denominato "image_upload.html" e riempirlo con il codice qui sotto. Questo sarà il modulo per selezionare l'immagine con.
<Html>
<head>
& Lt; title> caricare un'immagine & lt; / title>
& Lt; / head>
& Lt; body>
& Lt; div>
& Lt; h1> Carica un'immagine & lt; / h1>
& Lt; form method = azione "post" = "image_insert.php" enctype = "/ form-data multipart">
& Lt; div>
& Lt; ingresso type = "file" name = "image" />
& Lt; input type = "submit" value = "Carica immagine" />
& Lt; / div>
& Lt; / form>
& Lt; / div>
& Lt; / body>
</ Html>
3 Creare un file denominato "connect.php" e riempirlo con il codice qui sotto. Questo sarà lo script che permette di altri file per utilizzare il database. Utilizzare il proprio nome utente e la password al posto del "$ Nazioni Unite" e valori "$ PW" inclusi.
<? Php
$host="localhost"; $un="root"; $pw="password"; $db = "test";
$ Link = mysqli_connect ($ host, $ un, $ pw, $ db);
if (! $ link) {die ( 'Dannazione, collegamento non stabilito.'); Uscita;}
$ Db = "test";
$ Db = mysqli_select_db ($ link, $ db);
if (! $ link) {
die ( 'Collegare Errore ('. mysqli_connect_errno (). ')'
. mysqli_connect_error ());
if (! $ link) {
echo "Impossibile stabilire una connessione al server di database";
Uscita;
}
if (! mysqli_select_db ($ link, 'test')) {
echo "Impossibile connettersi al database";
Uscita;
}
?>
4 Creare un file denominato "image_insert.php" e riempirlo con il codice qui sotto. Questo file avrà i dati immagine inviamo dalla forma, e posizionarlo nella tabella immagini. Se non vi è alcuna immagine passato a questo file, verrà restituito un errore per voi.
<? Php
require_once('connect.php');
se {die ( 'Nessuna immagine!');} ($ _ FILES [ 'immagine']!)
$ Image = $ _FILES [ 'immagine'];
print_r ($ image);
$ Query = sprintf (
"INSERT INTO immagini (nome del file, mime_type, file_size, file_data)
VALORI ( '% s', '% s',% d, '% s') ",
mysql_real_escape_string ($ image [ 'name']),
mysql_real_escape_string ($ image [ 'type']),
$ Image [ 'size'],
mysql_real_escape_string (
file_get_contents ($ image [ 'tmp_name'])
)
);
(! $ Risultato = mysqli_query ($ link, $ query)) se {die ( 'Merda successo quando si cerca di inserire nella tabella' ($ link) .mysqli_error);}
$ Id = (int) mysqli_insert_id ($ link);
intestazione ( '? Località: image_view.php id =' $ id.);
Uscita;
?>
<Html>
<head>
& Lt; title> Errore & lt; / title>
& Lt; / head>
& Lt; body>
& Lt; div>
& Lt; p> C'è stato un errore nel codice, oppure il file non può essere caricato per un altro motivo. & Lt; / p>
& Lt; p>
& Lt; a href = "image_upload.php"> Go Back & lt; / a>
& Lt; / p>
& Lt; / div>
& Lt; / body>
</ Html>
5 Creare un file denominato "image_view.php" e salvare il codice qui sotto in esso. Questo file tirerà l'immagine dal database, e mostrare a voi in qualsiasi formato che si desidera. Il codice qui sotto ha l'immagine visualizzata a 500 pixel per 500 pixel.
<? Php
require_once('connect.php');
$ Desired_width = 500;
$ Desired_height = 500;
$ Id = (int) $ _GET [ 'id'];
$ Query = "SELECT * FROM WHERE immagini image_id = $ id";
$ Risultato = mysqli_query ($ link, $ query);
$ Image = mysqli_fetch_array ($ result);
mysqli_close ($ link);
$ Blobcontents = $ image [ 'file_data'];
$ Im = imagecreatefromstring ($ blobcontents);
$ Nuova = imagecreatetruecolor ($ desired_width, $ desired_height);
$ X = imagesx ($ im);
$ Y = imagesy ($ im);
imagecopyresampled ($ nuovo, $ im, 0, 0, 0, 0, $ desired_width, $ desired_height, $ x, $ y);
imagedestroy ($ im);
intestazione ( 'Content-type: image / jpeg');
imagejpeg ($ nuovo, null, 85);
?>
6 Individuare il file image_upload.html e fare clic su "Scegli file". Selezionare il file dal computer che si desidera caricare. Fai clic su "Carica file". Il software salva al database, e quindi visualizza l'immagine a voi nel formato che hai richiesto.