...
✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cargar imagen usando la biblioteca Bulletproof en PHP

60

Cargar una imagen en el servidor es una tarea común para los desarrolladores. Uno puede haber hecho esta tarea cientos de veces. Durante este proceso de carga, los desarrolladores deben ocuparse de lo siguiente.

  • Comprueba si el archivo subido es una imagen.
  • Crea un directorio donde se almacenarán las imágenes
  • Genere un nombre único para cada imagen para que no reemplace la existente con el mismo nombre.
  • Opcionalmente, agregue validación para la dimensión de una imagen. Si una imagen cargada tiene una dimensión mayor que la especificada, arroja un error.

Estas son las comprobaciones recomendadas que debe seguir un desarrollador al escribir código. Se pueden escribir condiciones para todos estos pasos en el código. Pero tomará algo de trabajo y el código se vuelve largo.

Recomendaré usar la biblioteca Bulletproof que maneja todos estos pasos debajo del capó. Le ahorra el tiempo de agregar lógica para cada paso y reducir el número de líneas de su código.

Bulletproof es un cargador de imágenes seguro de PHP, con una buena API. Hemos probado esta biblioteca para nuestro proyecto y estamos bastante contentos con el resultado final. Por eso decidí compartir unas palabras sobre esta biblioteca con nuestros lectores.

La biblioteca Bulletproof tiene las siguientes características en su núcleo que la hacen más segura.

  • Utiliza exif_imagetype() para obtener el mimo de imagen real (.extension)
  • Utiliza getimagesize () para comprobar si la imagen tiene un alto / ancho válido en píxeles.
  • Nombres de imágenes desinfectados, permisos de carpeta estrictos y más …

Dicho esto, echemos un vistazo a cómo cargar imágenes en PHP usando la biblioteca Bulletproof.

Empezando

Para comenzar con la biblioteca Bulletproof, instálela usando el comando Composer a continuación. Asegúrese de tener Composer instalado en el sistema.

composer require samayo/bulletproof:4.0.*

A continuación, cree un formulario HTML simple con entrada de archivo y botón de envío.

<form method="POST" enctype="multipart/form-data">
    <p><input type="file" name="image" accept="image/*" required /></p>
    <input type="submit" name="submit" value="Upload" />
</form>

Cargar imagen usando la biblioteca a prueba de balas

Estamos configurados con una biblioteca y un formulario HTML. Ahora, agreguemos un código proporcionado por la biblioteca que carga una imagen en el servidor.

<?php
require_once 'vendor/autoload.php';
 
if (isset($_POST['submit'])) {
 
    $file = new BulletproofImage($_FILES);
 
    $file->setLocation('uploads');
 
    if ($file["image"]) {
        $upload = $file->upload();
 
        if ($upload) {
            echo $upload->getFullPath();
        } else {
            echo $file->getError();
        }
    }
}
?>

Estás listo. Adelante, pruébalo. Verá sus imágenes almacenadas dentro de la carpeta ‘uploads’ con un nombre único. El usuario puede cambiar esta ubicación con otra cosa.

Si intenta cargar archivos que no sean imágenes, obtendrá un error. Por si acaso, si también desea establecer la dimensión, agregue la siguiente declaración en el código anterior.

$file->setDimension(600, 400);

Aquí ‘600’ es el ancho de la imagen y ‘400’ es la altura de una imagen. Ajuste los valores según sus requisitos.

Cargue varias imágenes usando la biblioteca a prueba de balas

Es posible que desee cargar varias imágenes en un servidor utilizando esta biblioteca. Requiere un pequeño cambio en el código anterior. Debe agregar un atributo ‘múltiple’ a la entrada del archivo. Además, use el formato de matriz para el nombre de la entrada del archivo. Después de esto, recorreremos cada imagen y la subiremos al servidor de la siguiente manera.

<?php
require_once 'vendor/autoload.php';
 
if (isset($_POST['submit'])) {
    for($i = 0; $i < count($_FILES['image']['name']); $i++) {
  
        $arr_file = array(
            "name" => $_FILES['image']['name'][$i],
            "type" => $_FILES['image']['type'][$i],
            "tmp_name" => $_FILES['image']['tmp_name'][$i],
            "error" => $_FILES['image']['error'][$i],
            "size" => $_FILES['image']['size'][$i],
        );
  
        $file = new BulletproofImage($arr_file);
  
        $file->setLocation('uploads');
  
        $upload = $file->upload();
    }
}
?>
<form method="POST" enctype="multipart/form-data">
    <p><input type="file" name="image[]" accept="image/*" multiple required /></p>
    <input type="submit" name="submit" value="Upload" />
</form>

¡Eso es! Espero que comprenda cómo cargar una imagen a través de la biblioteca Bulletproof. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More