laravel-media-manager / manager
管理您的项目文件和媒体
This package is not auto-updated.
Last update: 2024-09-18 20:28:21 UTC
README
此包创建用于管理项目中的媒体和文件
使用此包非常简单,让我们开始学习吧
安装
在composer.json中添加此包,并使用composer update更新依赖项
"require": {
...
"laravel-media-manager/manager": "dev-master",
...
},
将包添加到应用服务提供者中,在config/app.php
文件中
'providers' => [
'Illuminate\Foundation\Providers\ArtisanServiceProvider',
'Illuminate\Auth\AuthServiceProvider',
...
'MediaManager\Manager\ManagerServiceProvider::class',
],
然后在此config/app.php
文件中的aliases
数组中添加此行
'MediaManager' => MediaManager\Manager\Facade\Manager::class,
文档
首先,在此包中,假设public > upload
目录是文件上传的目标根目录,您不应在地址中提及它,例如:public/upload/product/7/image/picture.jpg
只需写下
MediaManager::store($request->file('file'), 'product/7/image', 'picture.jpg');
但您可以通过更改config.php文件中的此命令来更改此逻辑
php artisan vendor:publish
要使用此包,必须导入它,所以请在命名空间后编写此命令
导入门面:use MediaManager;
存储
您可以使用store
方法来管理文件的保存
当使用$request->file('file')获取文件时,使用以下方法:
MediaManager::store(UploadedFile $file, String $destinationPath, String $name);
例如,我们想将文件保存到upload/product/7/image
中
MediaManager::store($request->file('file'), 'product/7/image', 'picture.jpg');
如果您想更改文件名,请使用闭包而不是第三个参数
$baseName = $request->file('file')->getClientOriginalName();
list($fileName, $destinationPath) = MediaManager::store($request->file('file'), 'product/7/image', function() use ($baseName){
return 'company_name_'.time().'_'.$baseName;
});
文件将存储在目标路径中,并返回这些值
{
"company_name_1504896197_picture.png",
"yourSite.com\upload\product\7\image\"
}
注意:所有路径都是相等的
product/7/image
/product/7/image/
/product/7/image
product/7/image/
删除
要删除文件,需要提供文件名和文件路径
MediaManager::delete('picture.jpg', 'product/7/image');
或数组
MediaManager::delete(['picture1.jpg', 'picture2.jpg'], 'product/7/image');
重命名
要重命名文件,请向rename
方法提供3个参数
第一个参数:旧名称或当前名称
第二个参数:新名称
第三个参数:文件路径
例如
MediaManager::rename('oldName.jpg', 'newName', 'product/7/image');
注意:您不能在新名称中包含后缀,后缀由旧名称确定
复制
警告:如果目标文件已存在,它将被覆盖。
要复制文件,请向copy
方法提供3个参数
第一个参数:文件名
第二个参数:当前路径
第三个参数:新路径
例如
MediaManager::copy('picture.jpg', 'product/7/image', 'product/49/image');
剪切
剪切文件时,与复制类似,向cut
方法提供3个参数
第一个参数:文件名
第二个参数:当前路径
第三个参数:新路径
例如
MediaManager::cut('picture.jpg', 'product/7/image', 'product/49/image');
智能方法
智能存储
在SmartStore方法中,通过mimetype检查文件类型,并根据其类型创建文件夹,您不需要在声明中考虑特定类型的文件夹。例如,如果文件是以下这些mimetype之一:'image/jpeg', 'image/jpeg', 'image/jpeg', 'image/gif', 'image/bmp', 'image/vnd.microsoft.icon', 'image/tiff', 'image/tiff', 'image/svg+xml', 'image/svg+xml'
实际上,创建了一个名为image
的文件夹用于存储,并将此路径提供给方法product/7
而不是product/7/image
MediaManager::store(UploadedFile $file, String $destinationPath, String $name);
例如,我们想将文件保存到upload/product/7/image
中
MediaManager::SmartStore($request->file('file'), 'product/7', 'picture.jpg');
如果您想更改文件名,请使用闭包而不是第三个参数
$baseName = $request->file('file')->getClientOriginalName();
list($fileName, $destinationPath) = MediaManager::store($request->file('file'), 'product/7', function() use ($baseName){
return 'company_name_'.time().'_'.$baseName;
});
文件将存储在目标路径中,并返回这些值
{
"company_name_1504896197_picture.png",
"yourSite.com\public\upload\product\7\image\"
}
智能复制
在copy
和cut
方法中,目标路径必须存在,如果不存在,您将得到错误。在智能方式中,如果目标不存在,它最初创建它,然后继续。
警告:如果目标文件已存在,它将被覆盖。
参数与正常复制相同
MediaManager::SmartCopy('picture.jpg', 'product/7/image', 'product/49/image');
智能剪切
参数与正常剪切相同
MediaManager::SmartCut('picture.jpg', 'product/7/image', 'product/49/image');
# laravel-media-manager