willry/uploader

Automatizar o upload de arquivos, validando o tipo de arquivo e otimizando imagens

1.0.0 2021-11-27 23:15 UTC

This package is auto-updated.

Last update: 2024-04-22 22:42:40 UTC


README

Automatizar o upload de arquivos, validando o tipo de arquivo e otimizando imagens

Recursos

  • Classes prontas que validam o mime type e extensões dos arquivos
  • Fácil utilização e customização do diretório de upload e extensões permitidas

Instalação

A instalação está disponível via composer:

"willry/uploader": "^1.0"

Ou

composer require willry/uploader

Exemplo

Para mais detalhes sobre como usar, veja uma pasta de exemplo no diretório do componente. Nela terá um exemplo de uso para cada classe. Ele funciona assim:

<?php

require __DIR__ . "/../vendor/autoload.php";

use WillRy\Uploader\Image;
use WillRy\Uploader\File;
use WillRy\Uploader\Send;

if ($_POST && !empty($_GET["default"])) {
    $path = $_FILES['file']['name'];
    $extension = pathinfo($path, PATHINFO_EXTENSION);

    //it's an image
    $isImage = Image::isAllowed($extension);

    //it's an commom file
    $isFile = File::isAllowed($extension);

    if ($isImage) {
        //cropper
        $maxWidth = 500;

        //optional
        //jpg -> 0% ~ 100%
        //png -> 0 ~ 9
        $quality = ["jpg" => 75, "png" => 5];

        $image = new Image("uploads");
        $filePath = $image->upload($_FILES["file"], $_POST['file_name'], $maxWidth, $quality);
    } elseif ($isFile) {

        $file = new File("uploads");
        $filePath = $file->upload($_FILES["file"], $_POST['file_name']);
    } else {
        throw new Exception("Invalid mime type or extension");
    }

    var_dump($filePath);
}

if ($_POST && !empty($_GET["custom"])) {
    $tiposDeExtensao = ["csv"];
    $send = new Send("uploads", $tiposDeExtensao);
    $filePath = $send->upload($_FILES["file"], $_POST['file_name']);
    var_dump($filePath);
}

?>

<h2>Envio de imagem ou arquivo</h2>
<form action="?default=default" name="upload" method="post" enctype="multipart/form-data">
    <input name="file_name" type="text" value="My filename" required />
    <input name="file" type="file" required />
    <button>Enviar</button>
</form>

<h2>Envio direto de arquivo, de forma customizada</h2>
<form action="?custom=custom" name="upload" method="post" enctype="multipart/form-data">
    <input name="file_name" type="text" value="My filename" required />
    <input name="file" type="file" required />
    <button>Enviar</button>
</form>

Creditos

License

The MIT License (MIT). Please see License File for more information.