simexis / filemanager
一个针对Laravel 5和CKEditor使用的文件上传/编辑器
Requires
- php: >=5.5.9
- illuminate/support: >=5.0.0
- intervention/image: 2.*
- simexis/ckeditor: >=1.0
README
此包功能正常,但仍在积极开发中。
一个针对Laravel 5和CKEditor使用的文件上传/编辑器。
理由
此包专门为Laravel 5编写,可以无缝集成。该包基于tsawler/laravel-filemanager。
要求
- 此包仅支持Laravel 5.x
- 需要
"intervention/image": "2.*"
- 需要PHP 5.5或更高版本
安装
-
通过composer和packagist进行安装。在项目根目录中,执行以下命令
composer require simexis/filemanager
-
然后运行composer update从packagist安装包
composer update
-
将ServiceProvider添加到config/app.php中的providers数组中
Simexis\Filemanager\FilemanagerServiceProvider::class,
-
将Facade添加到config/app.php中的Facades数组中
'Filemanager' => Simexis\Filemanager\Facades\Filemanager::class,
-
发布包的配置文件
php artisan vendor:publish --tag=sfm_config
-
发布包的public文件夹资源
php artisan vendor:publish --tag=sfm_public
-
如果您想自定义外观和感觉,则发布包的视图
php artisan vendor:publish --tag=sfm_views
-
默认情况下,包将使用自己的路由。如果您不想使用这些路由,将config/sfm.php中的此条目更改为false
'use_package_routes' => true,
您当然需要设置自己的路由。
-
如果您不想使用默认的图片/文件目录或URL,请更新config/sfm.php中的相应行
'dir' => 'public/vendor/filemanager/images/', 'url' => '/vendor/filemanager/images/',
-
允许的扩展名。默认情况下全部启用。在config/sfm.php中
'allow' => [],
设置允许的数组:['png', 'zip', '...']
-
确保文件和图像目录可由您的Web服务器写入
-
在您使用CKEditor实例的视图中,使用文件上传器,如下初始化CKEditor实例
<script> CKEDITOR.replace( 'editor', { filebrowserImageBrowseUrl: '/filemanager', filebrowserBrowseUrl: '/filemanager' }); </script>
在此处,"editor"是您要转换成CKEditor实例的textarea的ID。请注意,如果您使用自定义路由,则必须将
/filemanager
更改为您选择的任何路由。 -
之前
</body>
添加标签
<?php echo Filemanager::scripts(); ?>
安全
需要注意的是,如果您使用自己的路由,您必须保护Laravel-Filemanager的路由,以防止未经授权的上传到您的服务器。幸运的是,Laravel使这变得非常简单。
例如,如果您想确保只有登录用户才能访问Laravel-Filemanager,只需将路由包裹在一个组中,例如
Route::group(array('middleware' => ['auth', 'web'], 'namespace' => 'Simexis\Filemanager\controllers'), function () // make sure authenticated
{
// Show SFM
Route::get('/filemanager', ['as' => 'filemanager.show', 'uses' => 'SfmController@show']);
// upload
Route::any('/filemanager/upload', ['as' => 'filemanager.upload', 'uses' => 'UploadController@upload']);
// list images & files
Route::get('/filemanager/json', ['as' => 'filemanager.files', 'uses' => 'ItemsController@getFiles']);
// folders
Route::get('/filemanager/newfolder', ['as' => 'filemanager.newfolder', 'uses' => 'FolderController@getAddfolder']);
Route::get('/filemanager/deletefolder', ['as' => 'filemanager.deletefolder', 'uses' => 'FolderController@getDeletefolder']);
Route::get('/filemanager/folders', ['as' => 'filemanager.folders', 'uses' => 'FolderController@getFolders']);
// crop
Route::get('/filemanager/crop', ['as' => 'filemanager.crop', 'uses' => 'CropController@getCrop']);
Route::get('/filemanager/cropimage', ['as' => 'filemanager.cropimage', 'uses' => 'CropController@getCropimage']);
// rename
Route::get('/filemanager/rename', ['as' => 'filemanager.rename', 'uses' => 'RenameController@getRename']);
// scale/resize
Route::get('/filemanager/resize', ['as' => 'filemanager.resize', 'uses' => 'ResizeController@getResize']);
Route::get('/filemanager/doresize', ['as' => 'filemanager.doresize', 'uses' => 'ResizeController@performResize']);
// download
Route::get('/filemanager/download', ['as' => 'filemanager.download', 'uses' => 'DownloadController@getDownload']);
// delete
Route::get('/filemanager/delete', ['as' => 'filemanager.delete', 'uses' => 'DeleteController@getDelete']);
});
这种方法确保只有经过验证的用户才能访问Laravel-Filemanager。如果您使用中间件或另一种方法来强制执行安全性,则按需进行修改。
许可证
此包根据MIT许可证发布。
MIT许可证 (MIT)
版权所有 (c) 2015 Trevor Sawler
本软件及其相关文档文件(以下简称“软件”)的使用权、复制权、修改权、合并权、发布权、分发权、再许可权和/或出售副本的权利,以及允许获得软件副本的个人在遵守以下条件的前提下使用软件,在此免费授予任何人。
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论这些责任是在合同行为、侵权或其他情况下产生的,以及与软件或软件的使用或其他交易相关的。