此包的最新版本(dev-master)没有可用的许可证信息。

管理您的项目文件和媒体

dev-master 2017-09-10 13:32 UTC

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\"
}

智能复制

copycut方法中,目标路径必须存在,如果不存在,您将得到错误。在智能方式中,如果目标不存在,它最初创建它,然后继续。

警告:如果目标文件已存在,它将被覆盖。

参数与正常复制相同

MediaManager::SmartCopy('picture.jpg', 'product/7/image', 'product/49/image');

智能剪切

参数与正常剪切相同

MediaManager::SmartCut('picture.jpg', 'product/7/image', 'product/49/image');
  # laravel-media-manager