learncodeweb / filesupload
一个用于上传多个文件的非常简单的(GD库图像处理)类。您可以创建多个缩略图,添加水印(文本/图像),调整图像大小和更改图像质量。您还可以使用此类与任何PHP框架一起使用,已测试与Laravel 8和Laravel 9兼容。
dev-main
2024-09-18 02:02 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: >=6.0.0
Suggests
- ext-gd: to use GD library based image processing.
This package is auto-updated.
Last update: 2024-09-18 02:02:50 UTC
README
一个PHP基类,您可以使用它将任何文件上传到服务器。这是一个非常轻量级的类,可高度自定义。您可以使用此类与任何框架或核心PHP一起使用。
依赖关系
此类基于GD库进行图像处理。如果您没有这个库,请安装它或将其在php.ini中启用。要安装GD库,请使用以下命令。
sudo apt-get install php-gd
安装后,请确保您有一个gd.ini文件,然后打开php.ini文件,找到以下内容。
;extension=gd
移除注释 [ ; ] 并将其更改为以下内容。
extension=gd
Composer安装
composer require learncodeweb/filesupload:dev-main
安装后,使用以下命令帮助重新创建autoload文件。
composer dump-autoload
如何导入到项目中
在laravel 8+(已测试)
use anyFileUpload\FilesUploadAndImageResize as anyFilesUpload; $files = new anyFilesUpload('array', ['jpg', 'jpeg', 'png'], public_path('uploads'), 0777); $files->uploadFiles('files', 250, [], '', 100, '850', ['350']); dd($files->uploadedData);
在核心PHP中,只需将autoload.php文件添加到您的项目,如下所示。
required('.../vendor/autoload.php'); $upload = new anyFileUpload\ImageUploadAndResize('array', ['jpeg', 'jpg', 'png'], '../uploads', 0655); $upload->uploadFiles('files', 250, '', $rename, 100, '850', ['350','450']);
类选项和功能
一个PHP基类,您可以使用它将任何文件上传到服务器。这是一个非常轻量级的类,可高度自定义。您可以使用此类与任何框架或核心PHP一起使用。
- 上传单个或多个文件。
- 上传任何类型的文件(不仅是图像)。
- 图像文件可以调整大小。
- 创建图像缩略图(保持图像宽高比)。
- 您可以添加水印(文本、图像)。
- 易于与表单集成。
- 在一个上传中创建任意数量的缩略图。
- 自定义缩略图文件夹的路径。
- 自定义缩略图大小和尺寸。
- 文件扩展名过滤器。
- 上传文件大小限制。
在构造函数中需要设置的参数
在方法中需要设置的参数
如何直接使用
require('../FilesUploadAndImageResize.php'); // File direct access $rename = rand(1000, 5000) . time(); // left empty if you want the real file name $upload = new anyFileUpload\ImageUploadAndResize('array', ['jpeg', 'jpg', 'png'], '../uploads', 0655); $upload->uploadFiles('files', 250, '', $rename, 100, '850', ['350','450']);
对于水印,您将使用一个数组,并能够添加图像作为水印或文本。
以下为文本水印的参数
[ 'value' => "HI I AM ZAID", 'font-size' => 50, 'font-family' => "../fonts/Myriad-Pro-Regular.ttf", 'font-color' => '#0a103e', 'position-x' => 400, 'position-y' => 100 ];
以下为图像水印的参数
[ 'value' => "your-image-complete-path", 'position-x' => 400, 'position-y' => 100 ];
响应将如下所示
在以下响应中,您将获得上传/未上传/不良扩展名以及成功/错误标志的数组或JSON数据。
print "<pre>"; print_r($upload->uploadedData); print "</pre>";
在服务器上更改上传文件大小
可能存在服务器上未设置上传文件大小的情况,服务器上的默认值为2MB。如果您遇到此类问题,只需找到您的php.ini文件的正确路径,并更改以下两个参数。
upload_max_filesize = 2M
post_max_size = 8M
更改为以下内容。
upload_max_filesize = 100M
post_max_size = 150M
记住
post max size 应大于 upload max filesize。