akbsit / laravel-system-file
将文件上传到服务器。
1.0.13
2024-04-06 11:37 UTC
Requires
- php: ^8.1
- ext-fileinfo: *
- dusank/knapsack: ^10.0
- laravel/framework: ^9.0|^10.0|^11.0
README
安装
要安装此包,您需要运行以下命令
composer require akbsit/laravel-system-file
然后安装迁移
php artisan migrate
用法
要将包连接到模型,您需要添加一个特质 InteractsMedia
use Akbsit\SystemFile\Traits\InteractsMedia; use Illuminate\Database\Eloquent\Model; class User extends Model { use InteractsMedia; }
示例
- 上传图片
User::first() ->addMedia('<file_url>') ->setFileName('user1') ->put();
- 将一个文件附加到模型(如果重新上传,则旧文件将被覆盖)
User::first() ->addMedia('<file_url>') ->setFileName('user1') ->single() ->put();
- 获取第一张图片
$oSystemFile = User::first()->getMediaFirst();
- 获取图片列表
$oSystemFileList = User::first()->getMedia();
方法和属性
media
- 模型附加的文件列表;addMedia($file)
- 将文件附加到模型$file
- 上传文件的对象/链接。
mediaExists(string $sCollection)
- 检查附加文件(默认为default
);getMedia(string $sCollection)
- 列出集合文件(默认为default
);getMediaFirst(string $sCollection)
- 集合的第一个元素(默认为default
)。
media
getUrl()
- 绝对文件路径;getPath()
- 文件路径;getWidthAndHeight()
- 获取文件大小(针对图片);getWidth()
- 获取宽度(针对图片);getHeight()
- 获取高度(针对图片);fileExists()
- 检查文件是否存在。
addMedia
setFile($file)
- 设置文件对象/链接;setModel(Model $oModel)
- 设置模型;enablePartition()
- 启用文件夹生成(例如:73c/d53/dce
);single()
- 将一个文件添加到模型(如果之前已附加其他文件,则将删除它们);setOriginFileName(string $sOriginFileName)
- 设置原始文件名;setFileName(string $sFileName)
- 设置文件名;setProperties(array $arProperties)
- 设置文件属性;toDisk(string $sDisk)
- 设置存储磁盘(默认为public
);toCollection(string $sCollection)
- 设置集合(默认为default
);toDir(string $sDir)
- 设置存储文件夹(默认为default
);put()
- 保存文件。
控制台命令
文件同步
php artisan system-file:sync