Nwlapcug.com


Come caricare & ridimensionare un'immagine di MySQL PHP

Come caricare & ridimensionare un'immagine di MySQL PHP


Quando si tratta di una grande quantità di immagini, è spesso utile per memorizzarli in un database. Questo rende l'accesso e modificare le immagini facile e snella, anche quando è necessario cambiare più di uno alla volta. Un compito comune eseguito su immagini memorizzate è per 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 un batch di miniature per la tua galleria di immagini, o semplicemente visualizzare una data immagine in un formato diverso da quello originale.

Istruzioni

1

Creare il database e la tabella in MySQL. Utilizzando l'interfaccia di MySQL, eseguire i seguenti comandi:

Prova di CREATE DATABASE;

Test d'uso;

CREATE TABLE immagini (

image_id serial,

filename varchar(255) not null,

mime_type varchar(255) not null,

file_size int not null,

file_data longblob not null,

primary key (image_id),

index (filename)

);2

Utilizzare un editor di testo per creare un file denominato "image_upload.html" e riempirlo con il codice riportato di seguito. Questo sarà il modulo selezionare l'immagine con.

< html >

&lt;head>

&lt;title>Upload an Image&lt;/title>

&lt;/head>

&lt;body>

&lt;div>

&lt;h1>Upload an Image&lt;/h1>

&lt;form method="post" action="image_insert.php" enctype="multipart/form-data">

&lt;div>

&lt;input type="file" name="image" />

&lt;input type="submit" value="Upload Image" />

&lt;/div>

&lt;/form>

&lt;/div>

&lt;/body>

< / html >

3

Creare un file denominato "Connect. php" e riempirlo con il codice riportato di seguito. Questo sarà lo script che consente di utilizzare il database il vostro altri file. Utilizzare il proprio nome utente e la password al posto dei valori "$un" e "$pw" incluso.

<? php

$host="localhost"; $un="root"; $pw="password"; $db = "test";

$link = mysqli_connect($host, $un, $pw, $db);

if(!$link){die('Damnit, link not established.'); exit;}

$db = "test";

$db = mysqli_select_db($link, $db);

if (!$link) {

die('Connect Error (' . mysqli_connect_errno() . ') '

. mysqli_connect_error());

if (!$link) {

echo "Unable to establish connection to database server";

exit;

}

if (!mysqli_select_db($link, 'test')) {

echo "Unable to connect to database";

exit;

}

? >

4

Creare un file denominato "image_insert.php" e riempirlo con il codice riportato di seguito. Questo file sarà prendere i dati di immagine che inviamo dalla forma e posizionarlo nella vostra tabella di immagini. Se non c'è nessuna immagine passata a questo file, verrà restituito un errore per te.

<? php

require_once('connect.php');

if (!$_FILES['image']){die('No Image!');}

$image = $_FILES['image'];

print_r ($image);

$query = sprintf(

"INSERT INTO images (filename, mime_type, file_size, file_data)

VALUES ('%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'])

)

);

if (!$result = mysqli_query($link, $query)){die('Shit happened when trying to insert into the table' .mysqli_error($link));}

$id = (int) mysqli_insert_id($link);

header('Location: image_view.php?id=' . $id);

exit;

? >

< html >

&lt;head>

&lt;title>Error&lt;/title>

&lt;/head>

&lt;body>

&lt;div>

&lt;p>There was an error in your code, or the file could not be uploaded for another reason. &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 riportato di seguito in esso. Questo file sarà tirare l'immagine dal database e mostrarlo a voi in qualunque dimensione che si desidera. Il codice qui sotto è l'immagine visualizzata a 500 x 500 pixel.

<? php

require_once('connect.php');

$desired_width = 500;

$desired_height = 500;

$id = (int) $_GET['id'];

$query = "SELECT * FROM images WHERE image_id = $id";

$result = mysqli_query($link, $query);

$image = mysqli_fetch_array($result);

mysqli_close($link);

$blobcontents = $image['file_data'];

$im = imagecreatefromstring($blobcontents);

$new = imagecreatetruecolor($desired_width, $desired_height);

$x = imagesx($im);

$y = imagesy($im);

imagecopyresampled($new, $im, 0, 0, 0, 0, $desired_width, $desired_height, $x, $y);

imagedestroy($im);

header('Content-type: image/jpeg');

imagejpeg($new, null, 85);

? >

6

Individuare il file image_upload.html e fare clic su "Scegli File". Selezionare il file dal computer che si desidera caricare. Fare clic su "Carica File". Il software salva il database e quindi Visualizza l'immagine a voi nel formato che hai richiesto.

Consigli & Avvertenze

  • Modificare i valori di $desired_height e $desired_width nel file image_view.php cambierà la dimensione dell'immagine quando viene visualizzato.
  • In alternativa, si potrebbe creare campi per questi valori nel modulo di caricamento e passarli alla pagina finale per rendere lo script più dinamico.