digit-soft / laravel-attachments
为 Laravel 提供文件附件。
1.3.0
2024-09-23 12:39 UTC
Requires
- php: ^8.1
- intervention/image: ~2.4
- laravel/framework: ^8.40|^9.0|^10.0
README
此包为您提供了将文件附加到任何 Eloquent 模型并记录这些用法的模型、特性和一些示例。还提供了私有文件的使用(通过框架使用用户令牌下载)。
可能的流程
- 您上传一个文件
- 为此文件创建
Attachment
模型 - 通过您的模型记录此附件的使用情况
如果您删除此模型,使用情况将被删除。如果您使用另一个附件重新保存您的模型,使用情况将被删除。
未使用的附件可以通过运行清理(@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