【问题标题】:Laravel File Manager 404 error on Laravel 6Laravel 6 上的 Laravel 文件管理器 404 错误
【发布时间】:2020-01-20 08:23:50
【问题描述】:

我已经使用 tinymce 文本编辑器为我的 laravel 应用程序安装了 Uni Sharp File Manager

我已按照安装指南的每一步操作,并复制了软件包说明中的代码 sn-p。

文本编辑器加载成功。

但是当我点击文件管理器按钮(红色圆圈)时,会打开一个弹出窗口并加载我的 404 错误页面。

我的资源路由只对auth中间件可用:

Route::prefix('manage')->group(function () {
   Auth::routes(['register' => false]);

    Route::middleware('auth')->group(function () {
            Route::resource('post', 'PostController');
    });
});

还检查了它给 laravel 文件管理器的路由列表有以下中间件:

 | web,auth,UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder,UniSharp\LaravelFilemanager\Middlewares\MultiUser |

刚刚在控制台中检查我收到此错误:

tinymce.min.js:2 GET https://upscaleadventures.com/laravel-filemanager?field_name=mceu_49-inp&type=Images 404

虽然我已经发布了供应商文件和配置文件。

lfm.php 文件内容:

<?php

/*
|--------------------------------------------------------------------------
| Documentation for this config :
|--------------------------------------------------------------------------
| online  => http://unisharp.github.io/laravel-filemanager/config
| offline => vendor/unisharp/laravel-filemanager/docs/config.md
 */

return [
    /*
    |--------------------------------------------------------------------------
    | Routing
    |--------------------------------------------------------------------------
     */

    'use_package_routes'       => true,

    /*
    |--------------------------------------------------------------------------
    | Shared folder / Private folder
    |--------------------------------------------------------------------------
    |
    | If both options are set to false, then shared folder will be activated.
    |
     */

    'allow_private_folder'     => true,

    // Flexible way to customize client folders accessibility
    // If you want to customize client folders, publish tag="lfm_handler"
    // Then you can rewrite userField function in App\Handler\ConfigHandler class
    // And set 'user_field' to App\Handler\ConfigHandler::class
    // Ex: The private folder of user will be named as the user id.
    'private_folder_name'      => UniSharp\LaravelFilemanager\Handlers\ConfigHandler::class,

    'allow_shared_folder'      => true,

    'shared_folder_name'       => 'shares',

    /*
    |--------------------------------------------------------------------------
    | Folder Names
    |--------------------------------------------------------------------------
     */

    'folder_categories'        => [
        'file'  => [
            'folder_name'  => 'files',
            'startup_view' => 'grid',
            'max_size'     => 50000, // size in KB
            'valid_mime'   => [
                'image/jpeg',
                'image/pjpeg',
                'image/png',
                'image/gif',
                'image/svg+xml',
            ],
        ],
        'image' => [
            'folder_name'  => 'photos',
            'startup_view' => 'list',
            'max_size'     => 50000, // size in KB
            'valid_mime'   => [
                'image/jpeg',
                'image/pjpeg',
                'image/png',
                'image/gif',
                'image/svg+xml',
                'application/pdf',
                'text/plain',
            ],
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Upload / Validation
    |--------------------------------------------------------------------------
     */

    'disk'                     => 'public',

    'rename_file'              => false,

    'alphanumeric_filename'    => false,

    'alphanumeric_directory'   => false,

    'should_validate_size'     => false,

    'should_validate_mime'     => false,

    // behavior on files with identical name
    // setting it to true cause old file replace with new one
    // setting it to false show `error-file-exist` error and stop upload
    'over_write_on_duplicate'  => false,

    /*
    |--------------------------------------------------------------------------
    | Thumbnail
    |--------------------------------------------------------------------------
     */

    // If true, image thumbnails would be created during upload
    'should_create_thumbnails' => true,

    'thumb_folder_name'        => 'thumbs',

    // Create thumbnails automatically only for listed types.
    'raster_mimetypes'         => [
        'image/jpeg',
        'image/pjpeg',
        'image/png',
    ],

    'thumb_img_width'          => 200, // px

    'thumb_img_height'         => 200, // px

    /*
    |--------------------------------------------------------------------------
    | File Extension Information
    |--------------------------------------------------------------------------
     */

    'file_type_array'          => [
        'pdf'  => 'Adobe Acrobat',
        'doc'  => 'Microsoft Word',
        'docx' => 'Microsoft Word',
        'xls'  => 'Microsoft Excel',
        'xlsx' => 'Microsoft Excel',
        'zip'  => 'Archive',
        'gif'  => 'GIF Image',
        'jpg'  => 'JPEG Image',
        'jpeg' => 'JPEG Image',
        'png'  => 'PNG Image',
        'ppt'  => 'Microsoft PowerPoint',
        'pptx' => 'Microsoft PowerPoint',
    ],

    /*
    |--------------------------------------------------------------------------
    | php.ini override
    |--------------------------------------------------------------------------
    |
    | These values override your php.ini settings before uploading files
    | Set these to false to ingnore and apply your php.ini settings
    |
    | Please note that the 'upload_max_filesize' & 'post_max_size'
    | directives are not supported.
     */
    'php_ini_overrides'        => [
        'memory_limit' => '256M',
    ],
];

【问题讨论】:

  • 您是否尝试直接访问文件管理器的路径?
  • 你能添加你的 config/lfm.php 配置文件吗?
  • @niklaz 我试图访问文件管理器
  • 您是否尝试在config/app.php中手动添加LFM服务提供者?
  • @niklaz 不,我没有。我在laravel 6,不需要手动添加服务提供者。

标签: laravel laravel-6


【解决方案1】:

web.php文件中添加如下代码:

 Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {
 \UniSharp\LaravelFilemanager\Lfm::routes();
 });

【讨论】:

    【解决方案2】:

    这是我在 Laravel Nova 中使用的 lfm 配置,它运行良好

    <?php
    
    return [
        /*
        |--------------------------------------------------------------------------
        | Routing
        |--------------------------------------------------------------------------
        */
    
        // Include to pre-defined routes from package or not. Middlewares
        'use_package_routes' => true,
    
        // Middlewares which should be applied to all package routes.
        // For laravel 5.1 and before, remove 'web' from the array.
        'middlewares' => ['web', 'auth'],
    
        // The url to this package. Change it if necessary.
        'url_prefix' => 'laravel-filemanager',
    
        /*
        |--------------------------------------------------------------------------
        | Multi-User Mode
        |--------------------------------------------------------------------------
        */
    
        // If true, private folders will be created for each signed-in user.
        'allow_multi_user' => true,
        // If true, share folder will be created when allow_multi_user is true.
        'allow_share_folder' => true,
    
        // Flexible way to customize client folders accessibility
        // If you want to customize client folders, publish tag="lfm_handler"
        // Then you can rewrite userField function in App\Handler\ConfigHander class
        // And set 'user_field' to App\Handler\ConfigHander::class
        // Ex: The private folder of user will be named as the user id.
        'user_field' => UniSharp\LaravelFilemanager\Handlers\ConfigHandler::class,
    
        /*
        |--------------------------------------------------------------------------
        | Working Directory
        |--------------------------------------------------------------------------
        */
    
        // Which folder to store files in project, fill in 'public', 'resources', 'storage' and so on.
        // You should create routes to serve images if it is not set to public.
        'base_directory' => 'public',
    
        'images_folder_name' => 'photos',
        'files_folder_name'  => 'files',
    
        'shared_folder_name' => 'shares',
        'thumb_folder_name'  => 'thumbs',
    
        /*
        |--------------------------------------------------------------------------
        | Startup Views
        |--------------------------------------------------------------------------
        */
    
        // The default display type for items.
        // Supported: "grid", "list"
        'images_startup_view' => 'grid',
        'files_startup_view' => 'list',
    
        /*
        |--------------------------------------------------------------------------
        | Upload / Validation
        |--------------------------------------------------------------------------
        */
    
        // If true, the uploaded file will be renamed to uniqid() + file extension.
        'rename_file' => false,
    
        // If rename_file set to false and this set to true, then non-alphanumeric characters in filename will be replaced.
        'alphanumeric_filename' => false,
    
        // If true, non-alphanumeric folder name will be rejected.
        'alphanumeric_directory' => false,
    
        // If true, the uploading file's size will be verified for over than max_image_size/max_file_size.
        'should_validate_size' => false,
    
        'max_image_size' => 50000,
        'max_file_size' => 50000,
    
        // If true, the uploading file's mime type will be valid in valid_image_mimetypes/valid_file_mimetypes.
        'should_validate_mime' => false,
    
        // available since v1.3.0
        'valid_image_mimetypes' => [
            'image/jpeg',
            'image/pjpeg',
            'image/png',
            'image/gif',
            'image/svg+xml',
        ],
    
        // If true, image thumbnails would be created during upload
        'should_create_thumbnails' => true,
    
        // Create thumbnails automatically only for listed types.
        'raster_mimetypes' => [
            'image/jpeg',
            'image/pjpeg',
            'image/png',
        ],
    
        // permissions to be set when create a new folder or when it creates automatically with thumbnails
        'create_folder_mode' => 0755,
    
        // permissions to be set on file upload.
        'create_file_mode' => 0644,
    
        // If true, it will attempt to chmod the file after upload
        'should_change_file_mode' => true,
    
        // available since v1.3.0
        // only when '/laravel-filemanager?type=Files'
        'valid_file_mimetypes' => [
            'image/jpeg',
            'image/pjpeg',
            'image/png',
            'image/gif',
            'image/svg+xml',
            'application/pdf',
            'text/plain',
        ],
    
        /*
        |--------------------------------------------------------------------------
        | Image / Folder Setting
        |--------------------------------------------------------------------------
        */
    
        'thumb_img_width' => 200,
        'thumb_img_height' => 200,
    
        /*
        |--------------------------------------------------------------------------
        | File Extension Information
        |--------------------------------------------------------------------------
        */
    
        'file_type_array' => [
            'pdf'  => 'Adobe Acrobat',
            'doc'  => 'Microsoft Word',
            'docx' => 'Microsoft Word',
            'xls'  => 'Microsoft Excel',
            'xlsx' => 'Microsoft Excel',
            'zip'  => 'Archive',
            'gif'  => 'GIF Image',
            'jpg'  => 'JPEG Image',
            'jpeg' => 'JPEG Image',
            'png'  => 'PNG Image',
            'ppt'  => 'Microsoft PowerPoint',
            'pptx' => 'Microsoft PowerPoint',
        ],
    
        'file_icon_array' => [
            'pdf'  => 'fa-file-pdf-o',
            'doc'  => 'fa-file-word-o',
            'docx' => 'fa-file-word-o',
            'xls'  => 'fa-file-excel-o',
            'xlsx' => 'fa-file-excel-o',
            'zip'  => 'fa-file-archive-o',
            'gif'  => 'fa-file-image-o',
            'jpg'  => 'fa-file-image-o',
            'jpeg' => 'fa-file-image-o',
            'png'  => 'fa-file-image-o',
            'ppt'  => 'fa-file-powerpoint-o',
            'pptx' => 'fa-file-powerpoint-o',
        ],
    
        /*
        |--------------------------------------------------------------------------
        | php.ini override
        |--------------------------------------------------------------------------
        |
        | These values override your php.ini settings before uploading files
        | Set these to false to ingnore and apply your php.ini settings
        |
        | Please note that the 'upload_max_filesize' & 'post_max_size'
        | directives are not supported.
        */
        'php_ini_overrides' => [
            'memory_limit'        => '256M',
        ],
    
    ];
    

    别忘了清除配置缓存

    php artisan config:clear
    

    【讨论】:

    • 还是同样的问题。
    猜你喜欢
    • 2018-02-07
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 2016-06-08
    • 2021-09-12
    • 2019-07-20
    相关资源
    最近更新 更多