✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Carregar imagem usando a biblioteca à prova de balas em PHP

40

Carregar uma imagem no servidor é uma tarefa comum para desenvolvedores. Alguém pode ter feito essa tarefa centenas de vezes. Durante esse processo de upload, os desenvolvedores devem cuidar do seguinte.

  • Verifique se o arquivo enviado é uma imagem
  • Crie um diretório onde as imagens irão armazenar
  • Gere um nome exclusivo para cada imagem, de modo que não substitua o existente com o mesmo nome.
  • Opcionalmente, adicione validação para a dimensão de uma imagem. Se uma imagem enviada tiver uma dimensão maior do que a especificada, emita um erro.

Estas são as verificações recomendadas que um desenvolvedor deve seguir ao escrever o código. Pode-se escrever condições para todas essas etapas do código. Mas vai dar um pouco de trabalho e o código se torna extenso.

Vou recomendar o uso da biblioteca à prova de balas, que trata de todas essas etapas para você nos bastidores. Isso economiza o tempo de adicionar lógica para cada etapa e reduzir o número de linhas de seu código.

Bulletproof é um uploader de imagens seguro em PHP, com uma boa API. Experimentamos esta biblioteca em nosso projeto e estamos muito felizes com o resultado final. É por isso que decidi compartilhar uma palavra sobre esta biblioteca com nossos leitores.

A biblioteca à prova de balas possui os seguintes recursos em seu núcleo, o que a torna mais segura.

  • Usa exif_imagetype() para obter a verdadeira imagem mímica (.extension)
  • Usa getimagesize () para verificar se a imagem tem uma altura / largura válida em pixels.
  • Nomes de imagens higienizadas, permissões restritas de pasta e muito mais …

Dito isso, vamos dar uma olhada em como fazer upload de imagens em PHP usando a biblioteca Bulletproof.

Começando

Para começar a usar a biblioteca à prova de balas, instale-a usando o comando Composer abaixo. Certifique-se de ter o Composer instalado no sistema.

composer require samayo/bulletproof:4.0.*

Em seguida, crie um formulário HTML simples com entrada de arquivo e botão de envio.

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

Carregar imagem usando a biblioteca à prova de balas

Estamos configurados com uma biblioteca e um formulário HTML. Agora, vamos adicionar um código fornecido pela biblioteca que carrega uma imagem no 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();
        }
    }
}
?>

Você terminou. Vá em frente e teste. Você verá suas imagens armazenadas na pasta ‘uploads’ com um nome exclusivo. O usuário pode alterar este local com outra coisa.

Se você tentar fazer upload de arquivos que não sejam imagens, receberá um erro. Por precaução, se você deseja definir a dimensão também, adicione a instrução abaixo no código acima.

$file->setDimension(600, 400);

Aqui, ‘600’ é a largura da imagem e ‘400’ é a altura de uma imagem. Ajuste os valores de acordo com seus requisitos.

Carregar várias imagens usando a biblioteca à prova de balas

Você pode querer fazer upload de várias imagens em um servidor usando esta biblioteca. Requer um pouco de mudança no código acima. Você precisa adicionar um atributo ‘múltiplo’ à entrada do arquivo. Além disso, use o formato de matriz para o nome do arquivo de entrada. Depois disso, faremos um loop por cada imagem e faremos o upload para o servidor da seguinte maneira.

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

É isso! Espero que você saiba como fazer o upload de uma imagem por meio da biblioteca à prova de balas. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação