unisharp 文件管理器不适用于 laravel 5.6
Posted
技术标签:
【中文标题】unisharp 文件管理器不适用于 laravel 5.6【英文标题】:unisharp filemanager not working on laravel 5.6 【发布时间】:2018-03-27 06:18:54 【问题描述】:我已经在我的项目中完全安装了新的unisharp filemanager 1.8
我用过TinyMCE
和CKeditor
,
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<textarea name="content" class="form-control my-editor"></textarea>
<script>
var editor_config =
path_absolute: "/",
selector: "textarea.my-editor",
plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor colorpicker textpattern"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media",
relative_urls: false,
file_browser_callback: function (field_name, url, type, win)
var x = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
var y = window.innerHeight || document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight;
var cmsURL = editor_config.path_absolute + 'laravel-filemanager?field_name=' + field_name;
if (type == 'image')
cmsURL = cmsURL + "&type=Images";
else
cmsURL = cmsURL + "&type=Files";
tinyMCE.activeEditor.windowManager.open(
file: cmsURL,
title: 'Filemanager',
width: x * 0.8,
height: y * 0.8,
resizable: "yes",
close_previous: "no"
);
;
tinymce.init(editor_config);
</script>
当我尝试通过 ckeditor 浏览图像/文件时,文件管理器弹出错误如下:
找不到对象! 在此服务器上找不到请求的 URL。
截图:
我的lmf
文件:
<?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,
// 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',
],
];
谁能帮忙?
【问题讨论】:
【参考方案1】:我遇到了同样的问题,最后我只是硬编码它,它对我有用。
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function ()
'\vendor\uniSharp\LaravelFilemanager\Lfm::routes()';
);
然后我运行 php artisan vendor:publish --tag=lfm_config
并输出:
Copied File [/vendor/unisharp/laravel-filemanager/src/config/lfm.php] To [/config/lfm.php]
Publishing complete.
还跑了php artisan vendor:publish --tag=lfm_public
,输出:
Copied Directory [/vendor/unisharp/laravel-filemanager/public] To [/public/vendor/laravel-filemanager] Publishing complete.
那么你需要php artisan route:clear
并且还运行
php artisan config:clear
【讨论】:
很抱歉在您回答这个问题很久之后打扰您。我遇到了同样的问题,按照您的说明在本地解决了。但是在我的网络服务器上,laravel 应用程序位于从 webroot 向下的 2 个子文件夹中,我仍然遇到同样的问题(其他一切都是相同的)。当我在 CKeditor 中单击“在服务器上浏览”以上传图像时,我收到与上述相同的错误消息。你能帮忙吗? 我不确定 CKeditor 是如何工作的。您可以在某处发布代码以查看发生了什么。我认为 CKeditor 获得的路径不知何故看不到所做的更改。【参考方案2】:替换这个 path_absolute : "", 和: path_absolute : " url('/') /",
在您的视图文件脚本中。
【讨论】:
以上是关于unisharp 文件管理器不适用于 laravel 5.6的主要内容,如果未能解决你的问题,请参考以下文章
Unisharp laravel 文件管理器 NotFoundHttpException
UniSharp/Laravel Filemanager 和 TinyMCE 集成
在页面内显示 UniSharp/laravel-filemanager(无编辑器)