legiaifenix / arcadia
Arcadia旨在通过Laravel工具提供快速图像解析和上传解决方案。其理念是只需传递文件,其余一切都将为你完成
README
创建者: Legiai Fenix 开始时间: 03/02/2017
描述
Arcadia旨在提供快速图像解析和上传解决方案。其理念是只需传递文件,其余一切都将为你完成请注意,此包正在开发中,旨在帮助开发者提高生产力,以便他们可以专注于项目的其他方面。
包名称介绍: Arcadia是希腊的一个地方,随着时间的推移,许多诗人和艺术家之手,逐渐成为一个虚构的国家。在Arcadia中,幸福、简朴和美丽盛行。鉴于此包旨在以简单、清晰的方式管理客户发送的图像,我们认为这个名字非常合适。我们旨在提供简单、清晰的解决方案来解决实际问题,让开发者满意。
##功能
| Functionality | Function Name | Variables | Returns |
|-----------------------------|--------------------|-----------------------|------------------|
| Add Images | uploadImage() | file_name, path | false, filename |
| List Images From Folder | listImages() | folder, amount, type | array |
| Deletes Images From Folder | deleteImage() | image with path | boolean |
##用法
首先,我们需要创建一个工厂来管理所有功能。
此工厂需要您提供希望存储图像的路径。如果不提供,它将使用默认的public和uploads。它受到Laravel文件夹结构的启发,其中图像被发送到路径/public/
如果您提供第一个参数,它将保持文件夹结构以存储图像
new ArcadiaFactory('web', 'uploads');
我们还可以在创建工厂对象时指定变量末尾的图像上传限制。如果没有指定,它将限制为2MB。在此示例中,我们允许50MB。当然,请确保您的php.ini接受您的变量。
new ArcadiaFactory('public', 'uploads', 50000);
##一切始于某处
Arcadia将通过工厂初始化实例化一个模型。您可以通过工厂访问该对象,请求它执行您所需的操作,只需通过工厂请求即可
$arcadiaF->getFactory();
##上传图像
我们可以通过传递字段参数通过我们的工厂开始上传图像
$arcadiaF = new ArcadiaFactory('public', 'uploads');
$arcadiaF->getFactory()->uploadImage('img');
如果没有指定上传路径,它将遵循在构造工厂时指定的目标文件夹中的WP结构。但如果您希望指定不同的文件夹,您可以将路径传递给它。它将检查根文件夹,并检查指定的文件夹是否存在(如果不存在,则创建)。然后上传文件。
$arcadiaF = new ArcadiaFactory('public', 'uploads');
$arcadiaF->getFactory()->uploadImage('img', 'tmp');
其中字段作为HTML文件输入存在
<input type="file" name="img">
##列出特定文件夹中的图像
因为我们希望允许您列出任何您希望的文件夹,所以您可以选择加载的数量(未来的开发将允许图像分页),以及您希望列出什么类型。
列出uploads/2017/02中所有svg的示例
$factory->getFactory()->listImages('/uploads/2017/02/', -1, 'svg');
列出uploads/2017/02中前5个jpg的示例
$factory->getFactory()->listImages('uploads/2017/02/', 5, 'jpg');
返回数组的示例
array(3) {
[0]=>
string(80) "/var/www/frame-tester/public/uploads/2017/02/04-02-2017_03-28-42_test_original.jpg"
[1]=>
string(80) "/var/www/frame-tester/public/uploads/2017/02/04-02-2017_03-46-13_test_original.jpg"
[2]=>
string(80) "/var/www/frame-tester/public/uploads/2017/02/04-02-2017_03-46-18_test_original.jpg"
}
##从文件夹中删除图像
只需传递包含图像名称的图像路径,程序将检查其是否存在,并将其从该位置删除。它仅允许您从文件夹中删除图像,因为它检查它是否是图像。可接受类型是
svg
png
jpeg
jpg
gif
您还可以通过使用列表函数在for循环中与删除配合使用来删除文件夹中的所有图像
$list = $factory->getFactory()->listImages('/uploads/2017/02');
foreach ($list as $item) {
$factory->getFactory()->deleteImage($item);
}
或者只需删除文件夹中的.gif
$list = $factory->getFactory()->listImages('/uploads/2017/02', 'gif');
foreach ($list as $item) {
$factory->getFactory()->deleteImage($item);
}