willry/uploader

自动化文件上传,验证文件类型并优化图片

1.0.0 2021-11-27 23:15 UTC

This package is auto-updated.

Last update: 2024-09-22 23:25:57 UTC


README

自动化文件上传,验证文件类型并优化图片

资源

  • 预定义的类,用于验证文件的MIME类型和扩展名
  • 易于使用和自定义上传目录及允许的扩展名

安装

通过composer进行安装

"willry/uploader": "^1.0"

或者

composer require willry/uploader

示例

有关如何使用的更多详细信息,请查看组件目录中的示例文件夹。其中包含了每个类的使用示例。它的工作原理如下

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

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件