digit-soft/laravel-attachments

为 Laravel 提供文件附件。

1.3.0 2024-09-23 12:39 UTC

This package is auto-updated.

Last update: 2024-09-23 12:40:03 UTC


README

此包为您提供了将文件附加到任何 Eloquent 模型并记录这些用法的模型、特性和一些示例。还提供了私有文件的使用(通过框架使用用户令牌下载)。

可能的流程

  1. 您上传一个文件
  2. 为此文件创建 Attachment 模型
  3. 通过您的模型记录此附件的使用情况

如果您删除此模型,使用情况将被删除。如果您使用另一个附件重新保存您的模型,使用情况将被删除。

未使用的附件可以通过运行清理(@see Facades/Attachments)来删除。

上传的图片可以自动调整到配置中指定的最大大小,为此有一个 job

有关进一步使用,请参阅 AttachmentManager

适用于 Rest API 项目。理想情况下,必须有一个用于文件上传的控制器和一个用于下载(私有文件)的控制器。控制器示例位于 src/Controllers 目录中。

还有一个图像处理控制器示例,它使用十六进制编码的宽度/高度数据,它会即时调整图像大小并将调整大小的图像放入缓存文件夹。您可以使用 NGINX 等,在下一次下载缓存图像。

特性

您可以在 src/Traits 目录中找到可用的模型特性。它们使用观察者来处理保存/删除事件。

  • HasAttachments - 用于模型内部的通用特性
  • HasAttachmentById - 用于具有单个 attachment_id 字段的模型特性

控制台

创建迁移

您可以通过运行 artisan 命令为 Attachment 模型创建数据库迁移。

php artisan attachments:tables

创建文件目录

该命令将为附件保存/发布创建目录。

php artisan attachments:directories