Come caricare e ridimensionare un PHP MySQL Immagine

May 3

Come caricare e ridimensionare un PHP MySQL Immagine


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.

istruzione

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>

&lt;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>

&lt;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.

Consigli e avvertenze

  • La modifica dei valori di $ desired_height e $ desired_width nel file image_view.php cambierà la dimensione dell'immagine quando è visualizzata.
  • In alternativa, è possibile creare campi per questi valori nel modulo di upload, e passarle alla pagina finale per rendere lo script più dinamico.