En este tutorial aprenderemos a subir imágenes usando PHP.
En PHP la creación de un gestor de imágenes es facilisma y realmente increíble el resultado que se puede obtener con solamente unos pocos minutos de trabajo.
Utilizaremos un archivo php y un directorio (/imagenes) donde se almacenaran las imágenes que subamos.
1. Creamos el formulario
Creamos el formulario: con dos inputs uno para subir la imagen y la otra para enviarla
<form name="subir_imagen" method="post" enctype="multipart/form-data">
<input type="file" name="imagen" /><br />
<input type="submit" name="botEnviarImagen" value="Subir Imagen" />
</form>
Se debe utilizar ‘enctype=”multipart/form-data’ para que se permita la subida de archivos a la página web.
2. PHP
Una vez creado el formulario pasamos al código PHP:
Primero comprobamos si se apretó el bóton de submit:
<?php
if(isset($_POST['botEnviarImagen'])){
Declaramos las variables del archivo y lo analizamos (pathinfo):
$nameimagen = $_FILES['imagen']['name'];
$tmpimagen = $_FILES['imagen']['tmp_name'];
$extimagen = pathinfo($nameimagen);
Mencionamos que extensiones queremos que se permitan, elegimos en qué carpeta queremos que se suban los archivos (en este caso la carpeta “imagenes”) y encriptamos el nombre del archivo a subir:
$ext = array("bmp","gif","jpg","png");
$urlnueva = "imagenes/".md5($name . time()).'.'.$extimagen['extension'];
Verificamos si está seleccionado el archivo, y validamos la extensión del mismo:
if(is_uploaded_file($tmpimagen)){
if(array_search($extimagen['extension'],$ext)){
Si la extensión es una de las permitidas procedemos a subir la imagen a nuestro directorio web y la mostramos en pantalla con su URL respectivo:
copy($tmpimagen,$urlnueva);
echo '<img src="'.$urlnueva.'" /><br>';
echo "Tu imagen (URL): <a href='$urlnueva'>$urlnueva</a>";
}
Finalizamos mostrando los textos negativos de las dos anteriores validaciones y cerramos el if(isset($_POST['botEnviarImagen'])){:
else {
echo "Solo se permiten imágenes con formato bmp, jpg, gif o png<br>";
}
} else {
echo "Selecciona una imagen.";
}
}
?>
3. Codigo Final
Si seguiste correctamente el tutorial, el codigo al final deberia quedarte mas o menos asi:
<form name="subir_imagen" method="post" enctype="multipart/form-data">
<input type="file" name="imagen" /><br />
<input type="submit" name="botEnviarImagen" value="Subir Imagen" />
</form>
<?php
if(isset($_POST["botEnviarImagen"])){
$nameimagen = $_FILES['imagen']['name'];
$tmpimagen = $_FILES['imagen']['tmp_name'];
$extimagen = pathinfo($nameimagen);
$ext = array("bmp","gif","jpg","png");
$urlnueva = "imagenes/".md5($name . time()).'.'.$extimagen['extension'];
if(is_uploaded_file($tmpimagen)){
if(array_search($extimagen['extension'],$ext)){
copy($tmpimagen, $urlnueva);
echo '<img src="'.$urlnueva.'" /><br>';
echo "Tu imagen (URL): <a href='$urlnueva'>$urlnueva</a>";
}
else {
echo "Solo se permiten imágenes con formato bmp, jpg, gif o png<br>";
}
}
else {
echo "Selecciona una imagen.";
}
}
?>
Explicación de las funciones usadas:
pathinfo(): devuelve una matriz asociativa que contiene información acerca de path.
isset(): Determina si una variable está definida y no es NULL
array(): Estas funciones permiten interactuar y manipular arrays (matrices) de varias maneras. Los array son esenciales para almacenar, manejar y operar conjuntos de variables.
md5(): Calcula el hash MD5 de str utilizando el » algoritmo de resumen de mensaje MD5 de RSA Data Security, Inc. y devuelve ese hash.
is_uploaded_file(): Comprueba si se subió un archivo o es nulo.
array_search(): Busca un valor determinado en un array y devuelve la clave correspondiente en caso de éxito.
copy(): Copia el archivo subido a nuestro directorio marcado entre paréntesis.
Descargar Complementos