如何将Flmngr文件管理器对接至Laravel服务器以读写本地图片
解决Flmngr Laravel集成CKEditor连接本地服务器的问题
核心问题分析
你当前配置的主要问题是缺失免费版默认API密钥,且后端路由仅支持POST请求(Flmngr部分操作需要GET),同时需确保文件目录权限正确。以下是修正步骤:
1. 修正前端CKEditor配置
必须保留免费版默认的apiKey,否则Flmngr会自动 fallback 到演示服务器。同时确认urlFileManager地址与后端路由完全匹配:
ClassicEditor.create(document.querySelector('#editor'), { language: 'fa', Flmngr: { apiKey: "FLMNFLMN", // 免费版必填默认密钥,不可删除 urlFileManager: "http://cms-project.test/admin/flmngr", // 与后端路由地址一致 urlFiles: "/uploads" // 前端访问文件的公开URL路径 } }) .then(editor => { window.editor = editor; }) .catch(error => { console.error('Oops, something went wrong!'); console.error(error); });
2. 调整后端Laravel路由
Flmngr需要同时处理GET(加载文件列表)和POST(上传/删除文件)请求,因此修改路由为支持两种请求方式,并确保文件目录存在:
Route::match(['get', 'post'], '/admin/flmngr', function () { $dirFiles = public_path('uploads'); // 自动创建uploads目录(如果不存在) if (!file_exists($dirFiles)) { mkdir($dirFiles, 0755, true); } \EdSDK\FlmngrServer\FlmngrServer::flmngrRequest([ 'dirFiles' => $dirFiles, ]); })->name('file-manager');
3. 确保文件目录权限正确
执行以下命令(Linux服务器)设置public/uploads目录的读写权限:
chmod -R 755 public/uploads chown -R www-data:www-data public/uploads # 根据你的服务器运行用户调整,比如apache/nginx用户
验证要点
- 确认
urlFileManager的地址可以正常访问:在浏览器中访问http://cms-project.test/admin/flmngr,若返回JSON格式的错误(如{"error":"No command specified"}),说明路由配置正确 - 检查浏览器控制台是否有跨域或404错误,若有则调整
urlFileManager地址或路由配置
内容的提问来源于stack exchange,提问作者Behxad_rhw
相关产品推荐
相关产品推荐

