akbsit/laravel-system-file

将文件上传到服务器。

1.0.13 2024-04-06 11:37 UTC

This package is auto-updated.

Last update: 2024-09-06 12:29:51 UTC


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;
}

示例

  1. 上传图片
User::first()
    ->addMedia('<file_url>')
    ->setFileName('user1')
    ->put();
  1. 将一个文件附加到模型(如果重新上传,则旧文件将被覆盖)
User::first()
    ->addMedia('<file_url>')
    ->setFileName('user1')
    ->single()
    ->put();
  1. 获取第一张图片
$oSystemFile = User::first()->getMediaFirst();
  1. 获取图片列表
$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