雪软/laravelresponsivefilemanager

Laravel 响应式文件管理器

dev-main 2022-02-21 23:11 UTC

This package is auto-updated.

Last update: 2024-09-22 04:39:37 UTC


README

Downloads GitHub license GitHub license Maintenance GitHub tag

此仓库受 MIT 许可证保护,除非文件中提及了其他许可证。

此处的 Laravel 插件代码部分受 MIT 许可证 保护。

RFM 作者提供其代码的商业版本(修改后的 include.js)。如果您在 Laravel 应用程序中使用 CSRF 检查,则需要修改此文件,在 AJAX 调用中添加 _token: jQuery('meta[name="csrf-token"]').attr('content')。您可以使用 www.diffchecker.com 检查您需要应用到 include.commercial.js 文件中的修改。我无法提供 RFM 用于商业目的的许可证。

如果您有任何纠正、建议或其他要说的,请告诉我。

阅读响应式文件管理器文档

如何安装?

在您的项目中安装

composer require Snowsoft/laravelresponsivefilemanager

现在有一个新的配置文件 rfm.php

config/app.php 中安装

'providers' => [
        /*
         * Laravel Framework Service Providers...
         */
        ...
        // Responsive File Manager
        Snowsoft\ResponsiveFileManager\FileManagerServiceProvider::class
],

app/Http/Kernel.php 中需要使用 StartSession,也可以使用并推荐 CSRF Token

protected $middlewareGroups = [
    ...
    'web' => [
        ...
        \Illuminate\Session\Middleware\StartSession::class,
        // Responsive File Manager supports CSRF Token usage
        \App\Http\Middleware\VerifyCsrfToken::class
    ]
    ...
];

然后执行以下操作

php artisan vendor:publish --provider="Snowsoft\ResponsiveFileManager\FileManagerServiceProvider"

为 URL 标识生成私钥

php artisan rfm:generate

所有配置均已包含,以便直接使用。文件应存储在 public 文件夹中。

不要忘记在配置文件中设置上传目录

$upload_dir = 'media/';
$thumbs_upload_dir = 'thumbs/'; //this will create inside upload directory

在配置文件中设置路由前缀

'route_prefix' => 'filemanager/',
//or
'route_prefix' => 'admin/filemanager/',  

在配置文件中设置中间件以提高安全性

'middleware' => 'auth', //defaualt is web

作为独立使用

使用辅助器编写文件管理器 URL

<a href="@filemanager_get_resource(dialog.php)?field_id=imgField&lang=en_EN&akey=@filemanager_get_key()">Open RFM</a>
// OR
<a href="@filemanager_dialog(['field_id'=>'imgField'])">Open RFM</a>    
// OR
<a href="@filemanager_dialog()">Open RFM</a>

请参阅 响应式文件管理器文档中的“使用作为独立文件管理器”

包含在 TinyMCE 或 CKEDITOR 中

包含 JS

  • 对于 CKEditor

将 #MYTEXTAREAJS 替换为您文本区域的输入

<script src='{{ asset('/vendor/unisharp/laravel-ckeditor/ckeditor.js') }}'></script>
<script>
    $(document).ready(function() {
        if($("#MYTEXTAREAID").length) {
            CKEDITOR.replace( 'postBody', {
                filebrowserBrowseUrl : '@filemanager_get_resource(dialog.php)?akey=@filemanager_get_key()&type=2&editor=ckeditor&fldr=',
                filebrowserUploadUrl : '@filemanager_get_resource(dialog.php)?akey=@filemanager_get_key()&type=2&editor=ckeditor&fldr=',
                filebrowserImageBrowseUrl : '@filemanager_get_resource(dialog.php)?akey=@filemanager_get_key()&type=1&editor=ckeditor&fldr=',
                language : '<?php App::getLocale() ?>'
            });
        }
    })
</script>
  • 对于 TinyMCE

使用 tinymce 参数

$(document).ready(() => {
    $('textarea').first().tinymce({
        script_url : '/tinymce/tinymce.min.js',
        width: 680,height: 300,
        plugins: [
            "advlist autolink link image lists charmap print preview hr anchor pagebreak",
            "searchreplace wordcount visualblocks visualchars insertdatetime media nonbreaking",
            "table contextmenu directionality emoticons paste textcolor filemanager code"
    ],
    toolbar1: "undo redo | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | styleselect",
    toolbar2: "| responsivefilemanager | link unlink anchor | image media | forecolor backcolor  | print preview code ",
    image_advtab: true ,
    filemanager_access_key: '@filemanager_get_key()',
    filemanager_relative_url: true,
    filemanager_sort_by: '',
    filemanager_descending: '',
    filemanager_subfolder: '',
    filemanager_crossdomain: '',
    external_filemanager_path: '@filemanager_get_resource(dialog.php)',
    filemanager_title:"Responsive Filemanager" ,
    external_plugins: { "filemanager" : "/vendor/responsivefilemanager/plugin.min.js"}
    });
});

要使用私有文件夹,请使用 .htaccess 文件并设置 Deny from all