runsite/laravel-filemanager

此包已被放弃,不再维护。未建议替代包。

适用于Laravel 5.3.*和CKEditor的文件上传/编辑器

0.63 2016-12-18 09:54 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

laravel-filemanager

适用于Laravel 5.xCKEditor的文件上传/编辑器。

理由

市面上有其他许多包提供类似的功能,例如KCFinder,但我觉得与Laravel集成有些问题,特别是在处理会话和安全方面。

此包专门为Laravel 5编写,将无缝集成。

要求

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

安装

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

    composer require runsite/laravel-filemanager

  2. 将以下内容添加到config/app.php中的providers数组中:

    Runsite\Laravelfilemanager\LaravelFilemanagerServiceProvider::class,
    Intervention\Image\ImageServiceProvider::class,
    Collective\Html\HtmlServiceProvider::class,
    
  3. 将以下内容添加到config/app.php中的aliases部分:

    'Image'     => Intervention\Image\Facades\Image::class,
    'Form' => Collective\Html\FormFacade::class,
    'Html' => Collective\Html\HtmlFacade::class,
    
  4. 发布包的配置文件

    php artisan vendor:publish --tag=lfm_config

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

    php artisan vendor:publish --tag=lfm_public

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

    php artisan vendor:publish --tag=lfm_views

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

        'use_package_routes' => true,

    当然,您必须设置自己的路由。

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

        'images_dir'         => 'public/vendor/laravel-filemanager/images/',
        'images_url'         => '/vendor/laravel-filemanager/images/',
        'files_dir'          => 'public/vendor/laravel-filemanager/files/',
        'files_url'          => '/vendor/laravel-filemanager/files/',
  9. 确保文件和图像目录可由您的Web服务器写入

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

        <script>
            CKEDITOR.replace( 'editor', {
                filebrowserImageBrowseUrl: '{{asset('/runsite/laravel-filemanager?type=Images')}}',
                filebrowserBrowseUrl: '{{asset('/runsite/laravel-filemanager?type=Files')}}'
            });
        </script>

    这里,“editor”是您要将其转换为CKEditor实例的textarea的id。请注意,如果您使用的是自定义路由,则必须将/runsite/laravel-filemanager?type=Images更改为您选择的任何路由。确保包含?type=Images参数。

安全

请注意,如果您使用自己的路由,您必须保护Laravel-Filemanager的路由以防止未经授权的上传到您的服务器。幸运的是,Laravel使这变得非常简单。

例如,如果您想确保只有已登录的用户才能访问Laravel-Filemanager,只需将路由包裹在组中,例如:

Route::group(array('before' => 'auth'), function ()
{
    Route::get('/runsite/laravel-filemanager', '\Runsite\Laravelfilemanager\controllers\LfmController@show');
    Route::post('/runsite/laravel-filemanager/upload', '\Runsite\Laravelfilemanager\controllers\LfmController@upload');
    // list all lfm routes here...
});

这种方法确保只有经过身份验证的用户才能访问Laravel-Filemanager。如果您使用中间件或某种其他方法来强制执行安全,则需要根据需要进行修改。

许可证

本软件包遵循 MIT 许可协议 发布。

MIT 许可协议 (MIT)

版权所有 (c) 2015 Trevor Sawler,Runsite LLC

特此授予任何人免费使用、复制、修改、合并、发布、分发、再许可和/或出售本软件及其相关文档(统称为“软件”)的权利,无需限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向获得软件的人提供此类权利,但须遵守以下条件:

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

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是由于合同、侵权或其他行为引起的,无论是在软件或其使用过程中发生的。