Tecnología

Inicio

Cómo subir y cambiar el tamaño de un PHP MySQL Imagen

Cómo subir y cambiar el tamaño de un PHP MySQL Imagen


Cuando se trata de una gran cantidad de imágenes, a menudo es útil para almacenarlos en una base de datos. Esto hace que el acceso y el cambio de las imágenes fácil y ágil, incluso cuando tiene que cambiar más de una a la vez. Una de las tareas comunes que se realizan en las imágenes almacenadas es cambiar el tamaño de la imagen. Carga y cambiar el tamaño de una imagen usando PHP y MySQL puede ser muy simple, y que le permite hacer muchas cosas, como crear un lote de imágenes en miniatura para su galería de imágenes, o simplemente mostrar una imagen dada en un tamaño distinto al original.

Instrucciones

1 Crear su base de datos y tabla en MySQL. El uso de la interfaz de MySQL, ejecute los siguientes comandos:

CREATE DATABASE test;

Prueba de uso;

TABLA crear imágenes (

image_id serial,

varchar nombre de archivo (255) no es nulo,

varchar mime_type (255) no es nulo,

file_size no int nula,

file_data LONGBLOB no es nulo,

clave principal (image_id),

índice (nombre de archivo)

);

2 Utilice un editor de texto para crear un archivo llamado "image_upload.html" y llenarlo con el código de abajo. Esta será la forma para seleccionar la imagen con.

<Html>

&lt;head>

& Lt; title> Subir una imagen & lt; / title>

& Lt; / head>

& Lt; body>

& Lt; div>

& Lt; h1> Suba una imagen & lt; / h1>

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

& Lt; div>

& Lt; entrada type = "file" name = "imagen" />

& Lt; input type = "submit" value = "Subir imagen" />

& Lt; / div>

& Lt; / form>

& Lt; / div>

& Lt; / body>

</ Html>

3 Crear un archivo llamado "connect.php" y llenarlo con el código de abajo. Esta será la secuencia de comandos que permite a sus otros archivos para utilizar la base de datos. Use su propio nombre de usuario y contraseña en lugar del "$ ONU" y los valores "$ PW" incluidos.

<? Php

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

$ Link = mysqli_connect ($ host, $ ONU, pw $, $ db);

if (! $ link) {die ( 'Maldita sea, no se ha establecido el enlace.'); salida;}

$ Db = "prueba";

$ Db = mysqli_select_db (enlace $, $ db);

if (! $ link) {

die ( 'Conexión de error ('. mysqli_connect_errno (). ')'

. mysqli_connect_error ());

if (! $ link) {

echo "No se puede establecer conexión con el servidor de base de datos";

salida;

}

if (! mysqli_select_db ($ enlace, 'prueba')) {

echo "No se puede conectar a la base de datos";

salida;

}

?>

4 Crear un archivo llamado "image_insert.php" y llenarlo con el código de abajo. Este archivo tendrá los datos de imagen que enviamos desde la forma, y ​​lo coloca en la tabla de imágenes. Si no hay imagen pasado a este archivo, se devuelve un error para usted.

<? Php

require_once('connect.php');

Si {die ( 'No hay imagen!');} ($ _ FILES [ 'imagen']!)

imagen $ = $ _FILES [ 'imagen'];

print_r ($ imagen);

$ Consulta = sprintf (

"INSERT INTO imágenes (nombre de archivo, mime_type, file_size, file_data)

VALUES ( '% s', '% s',% d,% s) ",

mysql_real_escape_string ($ imagen [ 'nombre']),

mysql_real_escape_string ($ imagen [ 'type']),

$ [ 'Size'] imagen,

mysql_real_escape_string (

file_get_contents ($ image [ 'tmp_name'])

)

);

(! $ Resultado = mysqli_query (enlace $, $ consulta)) si {die ( 'Mierda sucedió cuando se trata de insertar en la tabla' .mysqli_error (enlace $));}

$ Id = (int) mysqli_insert_id (enlace $);

header ( '? Ubicación: image_view.php id =' $ id.);

salida;

?>

<Html>

&lt;head>

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

& Lt; / head>

& Lt; body>

& Lt; div>

& Lt; p> Se ha producido un error en el código, o el archivo no se puede subir por otra razón. & Lt; / p>

& Lt; p>

& Lt; a href = "image_upload.php"> Retroceder & lt; / a>

& Lt; / p>

& Lt; / div>

& Lt; / body>

</ Html>

5 Crear un archivo llamado "image_view.php" y guardar el código de abajo en él. Este archivo se tire de la imagen a partir de la base de datos, y mostrar a usted en cualquier tamaño que desee. El código de abajo tiene la imagen que aparece a 500 píxeles por 500 píxeles.

<? Php

require_once('connect.php');

$ Desired_width = 500;

$ Desired_height = 500;

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

$ Query = "SELECT * FROM imágenes donde image_id = $ id";

$ Resultado = mysqli_query ($ enlace, $ consulta);

$ Imagen = mysqli_fetch_array ($ resultado);

mysqli_close (enlace $);

$ = $ Blobcontents imagen [ 'file_data'];

$ Im = imagecreatefromstring (blobcontents $);

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

$ X = imagesx ($ im);

$ Y = imagesy ($ im);

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

imagedestroy ($ im);

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

imagejpeg ($ nueva, null, 85);

?>

6 Busque el archivo de image_upload.html y haga clic en "Seleccionar archivo". Seleccione el archivo de su computadora que desea cargar. Haga clic en "Cargar archivo". El software guarda en la base de datos, y luego muestra la imagen a usted en el tamaño que ha solicitado.

Consejos y advertencias

  • El cambio de los valores de $ desired_height y $ desired_width en el archivo image_view.php va a cambiar el tamaño de la imagen cuando se visualiza.
  • Como alternativa, puede crear campos de estos valores en el formulario de carga, y pasarlos a la página final para que el guión más dinámico.