-
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>
<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>
<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.