simexis/filemanager

一个针对Laravel 5和CKEditor使用的文件上传/编辑器

1.0.5 2016-02-15 13:47 UTC

This package is auto-updated.

Last update: 2024-09-15 00:20:51 UTC


README

此包功能正常,但仍在积极开发中。

一个针对Laravel 5CKEditor使用的文件上传/编辑器。

理由

此包专门为Laravel 5编写,可以无缝集成。该包基于tsawler/laravel-filemanager

要求

  1. 此包仅支持Laravel 5.x
  2. 需要 "intervention/image": "2.*"
  3. 需要PHP 5.5或更高版本

安装

  1. 通过composer和packagist进行安装。在项目根目录中,执行以下命令

    composer require simexis/filemanager

  2. 然后运行composer update从packagist安装包

    composer update

  3. 将ServiceProvider添加到config/app.php中的providers数组中

    Simexis\Filemanager\FilemanagerServiceProvider::class,

  4. 将Facade添加到config/app.php中的Facades数组中

    'Filemanager' => Simexis\Filemanager\Facades\Filemanager::class,

  5. 发布包的配置文件

    php artisan vendor:publish --tag=sfm_config

  6. 发布包的public文件夹资源

    php artisan vendor:publish --tag=sfm_public

  7. 如果您想自定义外观和感觉,则发布包的视图

    php artisan vendor:publish --tag=sfm_views

  8. 默认情况下,包将使用自己的路由。如果您不想使用这些路由,将config/sfm.php中的此条目更改为false

        'use_package_routes' => true,

    您当然需要设置自己的路由。

  9. 如果您不想使用默认的图片/文件目录或URL,请更新config/sfm.php中的相应行

        'dir'         => 'public/vendor/filemanager/images/',
        'url'         => '/vendor/filemanager/images/',
    
  10. 允许的扩展名。默认情况下全部启用。在config/sfm.php中

        'allow' => [],

设置允许的数组:['png', 'zip', '...']

  1. 确保文件和图像目录可由您的Web服务器写入

  2. 在您使用CKEditor实例的视图中,使用文件上传器,如下初始化CKEditor实例

        <script>
            CKEDITOR.replace( 'editor', {
                filebrowserImageBrowseUrl: '/filemanager',
                filebrowserBrowseUrl: '/filemanager'
            });
        </script>

    在此处,"editor"是您要转换成CKEditor实例的textarea的ID。请注意,如果您使用自定义路由,则必须将/filemanager更改为您选择的任何路由。

  3. 之前

</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

本软件及其相关文档文件(以下简称“软件”)的使用权、复制权、修改权、合并权、发布权、分发权、再许可权和/或出售副本的权利,以及允许获得软件副本的个人在遵守以下条件的前提下使用软件,在此免费授予任何人。

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论这些责任是在合同行为、侵权或其他情况下产生的,以及与软件或软件的使用或其他交易相关的。