zakariayacine / laramediamover
LaraMediaMover是一个通用的Laravel包,简化了所有类型的多媒体文件(包括图片、视频和文档)的移动和管理。它为上传、存储、重命名和处理文件提供了一套全面的解决方案,确保Laravel项目的开发体验流畅。
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
This package is auto-updated.
Last update: 2024-09-11 05:37:28 UTC
README
LaraMediaMover是一个通用的Laravel包,简化了所有类型的多媒体文件(包括图片、视频和文档)的移动和管理。它为上传、存储、重命名和处理文件提供了一套全面的解决方案,确保Laravel项目的开发体验流畅。安装
您可以通过运行以下命令使用Composer安装此包:
composer require zakariayacine/laramediamover
该包将自动注册自身。
接下来,您应该使用以下命令发布包配置文件:
php artisan vendor:publish --tag=laramediamover-config
这将创建一个位于您的config
目录中的laramediamover.php
配置文件。您可以根据需要自定义配置。
用法
要使用LaraMediaMover,您需要创建LaraMediaMover
类的实例并调用moveFile
方法。以下是如何使用的示例:
use Zakariayacine\LaraMediaMover\LaraMediaMover; // Instantiate LaraMediaMover with the file content, extension, and optional parameters $mediaMover = new LaraMediaMover($fileContent, 'jpg', 'my_image.jpg', 'public'); // Move the file and get its URL $mediaUrl = $mediaMover->moveFile(); if ($mediaUrl) { // The file has been successfully moved, and $mediaUrl contains its URL // You can use $mediaUrl as needed in your application } else { // An error occurred during the file move process // Handle the error appropriately }
在上面的示例中
$fileContent
是要移动的媒体文件的内容。'jpg'
是文件扩展名。'my_image.jpg'
是期望的文件名。'public'
是您想要使用的存储磁盘。
您可以根据需求自定义这些参数。
配置
您可以通过修改位于您的config
目录中的laramediamover.php
配置文件来自定义包的行为。此文件允许您定义包的默认设置。
异常
如果在媒体移动过程中出现错误,该包可能会抛出MediaMoveException
。您可以捕获此异常来优雅地处理错误。
use Zakariayacine\LaraMediaMover\Exceptions\MediaMoveException; try { // Attempt to move the media file here } catch (MediaMoveException $e) { // Handle the error, log it, or return an error response }
带哈希文件名的示例URL
为了说明LaraMediaMover包如何生成带哈希文件名的URL,以下是一些使用哈希名称的示例:
PDF文件
- 原始文件名:
document.pdf
- 哈希文件名:
4e76275d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaffed001.pdf
- 存储路径:
PDF/4e76275d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaffed001.pdf
- 生成的URL:
https://example.com/storage/PDF/4e76275d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaffed001.pdf
图片
- 原始文件名:
picture.jpg
- 哈希文件名:
7b5eaffed0014e76275d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5ea.jpg
- 存储路径:
IMAGES/7b5eaffed0014e76275d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5ea.jpg
- 生成的URL:
https://example.com/storage/IMAGES/7b5eaffed0014e76275d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5ea.jpg
视频
- 原始文件名:
video.mp4
- 哈希文件名:
5d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5ea5d9d4b3b51.mp4
- 存储路径:
VIDEOS/5d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5ea5d9d4b3b51.mp4
- 生成的URL:
https://example.com/storage/VIDEOS/5d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5ea5d9d4b3b51.mp4
音频
- 原始文件名:
audio.mp3
- 哈希文件名:
ea5d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaaudio.mp3
- 存储路径:
AUDIO/ea5d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaaudio.mp3
- 生成的URL:
https://example.com/storage/AUDIO/ea5d9d4b3b51c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaaudio.mp3
其他文件
- 原始文件名:
other.docx
- 哈希文件名:
1c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaaother.docx
- 存储路径:
OTHER/1c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaaother.docx
- 生成的URL:
https://example.com/storage/OTHER/1c1ab9a44d5c0c15399d02889163361749e1645aa27b5eaaother.docx
以下示例展示了LaraMediaMover包如何根据不同类型媒体文件的扩展名和存储路径生成带有哈希文件名的URL。哈希文件名为每个文件提供了安全和唯一性。
许可证
本包是开源软件,根据MIT许可证授权。
请自定义此README,包括与您的包相关的特定说明、详细信息或附加信息。用实际包详细信息、使用说明和许可证信息替换占位符内容。
有关更多信息更新,请访问LaraMediaMover GitHub仓库。