mohamed-amine/file-uploader

一个轻量级的PHP脚本,可以轻松上传你的文件/图片,并具有压缩和调整大小等酷炫功能

v4.0 2024-06-06 22:16 UTC

This package is auto-updated.

Last update: 2024-09-07 00:32:37 UTC


README

简单易用的PHP文件上传器

通过composer安装

composer require mohamed-amine/file-uploader

如何使用

HTML

单文件上传
<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myfile" /><br>
    <input type="submit" value="Upload File"/>
</form>
多文件上传
<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myfile[]" /><br>
    <input type="file" name="myfile[]" /><br>
    <input type="file" name="myfile[]" /><br>
    <input type="submit" value="Upload File"/>
</form>

简单文件上传

注意:每个验证或其他过程都应该在上传之前完成(调用save()方法)。

<?php
// create uploader instance
$file = Upload\Upload('myfile');

// upload files to defined directory
$data = $file->save('myDirectory');

var_dump($data);

// this will output an array which contains uploaded files data
// [
//      'id' => 'sf23s6sdf23s',
//      'name' => 'myFileName',
//      'path' => 'document/images/photo.jpg'
// ]
// 
// Or in case of multi file upload
//
// [
//      [
//          'id' => 'er23sfd3p4uo ',
//          'name' => 'photo1',
//          'path' => 'document/images/photo1.jpg'
//      ],
//      [
//          'id' => 'sf23s6sdf23s',
//          'name' => 'photo2',d
//          'path' => 'document/images/photo2.jpg'
//      ]
// ]
//

验证

可用的验证方法有

  • size(float $min, float $max) 最小和最大值以MB为单位
  • extension(array $allowed)
  • number(int $min, int $max = null)
$file = Upload\Upload('myfile');

// validate
$file->validate()->extension(['jpg', 'gif'])->size(0.5, 10)->number(2);

// check for validation errors
if ($file->isValide()) {
    var_dump($file->getErrors();
}

// upload files
$file->save('myDirectory');

处理上传的文件

注意:此函数需要服务器上安装php-gd。目前只能处理图片,可用方法有

  • compress(int $quality) 注意:压缩级别0到100,数值越低表示压缩程度越高,质量越低
  • resize(int $width, int $height)
  • setName(array $names)
$file->process()->compress(75)->resize(500, 800)->setName(['firstname', 'secondname']);

// or

$file->process()->compress(75);
$file->process()->resize(500, 800);
$file->process()->setName(['firstname', 'secondname']);

$file->save('myDirectory');

贡献

任何贡献都将受到欢迎。