kwaadpepper/laravel-responsivefilemanager

此包已被废弃且不再维护。未建议替代包。

将Alberto Peripolli的Responsive File Manager集成到Laravel中

0.1.1 2020-09-26 13:02 UTC

README

Laravel-ResponsiveFileManager

GitHub issues GitHub license GitHub license Maintenance GitHub tag

此软件包含Responsive File Manager的修改版本 Responsive File Manager 查看 官方网站

Responsive File Manager (RFM)授权基于CC BY-NC 3.0,这意味着软件不能用于商业目的的再分发。

CC BY-NC 3.0

如果您想用于商业目的,请查看作者(Alberto Peripolli)的网站

除文件中提及的其它授权外,此仓库受MIT授权。

对RFM进行修改是为了

  • 防止冲突
  • 修复小错误
  • 适配Laravel

此处的Laravel插件代码部分受MIT授权

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

如果您有一些修改、建议或其他要说的,请告诉我。如果您做了什么有趣的事情并希望分享,请不要犹豫,提交PR

阅读Responsive File Manager文档

如何安装?

#1

在您的项目中安装

composer require kwaadpepper/laravel-responsivefilemanager

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

config/app.php 中安装

'providers' => [
        /*
         * Laravel Framework Service Providers...
         */
        ...
        // Responsive File Manager
        Kwaadpepper\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="Kwaadpepper\ResponsiveFileManager\FileManagerServiceProvider"

生成用于URL识别的私有密钥

php artisan rfm:generate

所有配置都已包括以实现即插即用。文件应存储在public文件夹中。

别忘了创建上传目录

mkdir -p public/uploads/files/

#2

作为独立使用

使用助手函数来编写文件管理器URL

<a href="@filemanager_get_resource(dialog.php)?field_id=imgField&lang=en_EN&akey=@filemanager_get_key()" value="Files">Open RFM</a>

查看负责文件管理器文档中的USE AS STAND-ALONE FILE MANAGER

提示:似乎支持Bootstrap Modal

包含在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_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

配置

语言

此包支持多种语言,但尚不完整。如果您有相关语言技能,请贡献。

  1. URL 获取参数 ($_GET)
  2. RF.language 会话变量(用户在下拉列表中选择的语言
  3. config.php(rfm.phpdefault_language
  4. 用户首选语言(HTTP 头部
  5. 您的 Laravel 应用默认语言
支持的语言
az_AZ      Azərbaycan dili
bg_BG      български език
ca         Català, valencià
cs         čeština, český jazyk
da         Dansk
de         Deutsch
el_GR      ελληνικά
en_EN      English
es         Español
fa         فارسی
fi_FI      Finnish
fr_FR      Français
he_IL      Hebrew (Israel)
hr         Hrvatski jezik
hu_HU      Magyar
id         Bahasa Indonesia
it         Italiano
ja         日本
lt         Lietuvių kalba
mn_MN      монгол
nb_NO      Norsk bokmål
nn_NO      Norsk nynorsk
nl         Nederlands, Vlaams
pl         Język polski, polszczyzna
pt_BR      Português(Brazil,
pt_PT      Português
ro         Română
ru         Pусский язык
sk         Slovenčina
sl         Slovenski jezik
sv_SE      Svenska
th_TH      ไทย
tr_TR      Türkçe
uk_UA      Yкраїнська мова
vi         Tiếng Việt
zh_CN      中文 (Zhōngwén), 汉语, 漢語

FTP

待定

TODO

  • 设置私钥
  • 在 JS 端进行更多更正
  • 在语言上进行更多更正
  • 使用 tinyMCE 进行测试
  • 包括商业支持
  • 测试和调试 FTP 功能(Alpha 版本仍需要调试一些功能)
  • TODO:缓存 FTP 缩略图以进行预览(仅限图像)
  • 多用户和身份验证支持
  • 编译资产
  • 发布包
  • 重写路由以使其更简洁(例如:ajax_calls/{action}/{subaction})
  • 正确分离视图和逻辑(例如:dialog.php OMG <(o_O)>)