所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

PHP环境下Fckeditor编辑器上传图片配置详细教程|新手实操全步骤指南

PHP环境下Fckeditor编辑器上传图片配置详细教程|新手实操全步骤指南 一

文章目录CloseOpen

先把基础环境“摸清楚”,避免一开始就踩坑

新手配置Fckeditor上传功能,最容易忽略的就是“环境兼容性”——不是Fckeditor难用,是你没先把PHP和服务器的基础设置掰对。

首先说PHP版本:Fckeditor是老工具了,对PHP5.6到PHP7.4的支持最稳,PHP8以上会有不少函数“被淘汰”(比如ereg_replace函数改成了preg_replace)。我朋友当时用的是PHP8.1,装完Fckeditor直接报“Call to undefined function ereg_replace()”,后来降级到PHP7.4才解决。你可以用php -v命令查自己的PHP版本,要是高于7.4,要么降级,要么找Fckeditor的PHP8适配版(网上有第三方修改的版本,但稳定性不如原版)。

然后是PHP的“文件上传”开关:PHP默认允许文件上传,但有些服务器会关掉这个功能。你得先检查php.ini里的file_uploads参数是不是On——怎么查?新建个info.php文件,写一行,上传到项目根目录,用浏览器访问http://你的域名/info.php,然后Ctrl+F搜“file_uploads”。要是显示Off,赶紧打开php.ini(位置一般在/etc/php/7.4/apache2/php.ini/etc/php/7.4/cli/php.ini),把file_uploads = Off改成On,再重启Apache或Nginx(比如systemctl restart apache2)。我朋友当时就是没查这个,明明Fckeditor配置对了,上传时却提示“无法上传文件”,绕了大弯才发现是PHP的开关没开。

还有服务器环境的区别:如果你用Apache,Fckeditor的目录权限默认就能用;但要是用Nginx,得额外配置rootalias指向Fckeditor的目录。比如你的Fckeditor放在/var/www/html/fckeditor/,Nginx的server块里要加root /var/www/html;,不然Nginx找不到Fckeditor的文件。我之前用Nginx时,访问Fckeditor的editor.html一直404,后来在Nginx配置文件里加了location /fckeditor/ { root /var/www/html; },才解决问题。

核心配置文件“逐行改”,每个参数都讲透

基础环境没问题了,接下来改Fckeditor的核心配置文件——主要是config.phpuploader.php,这两个文件都在Fckeditor的editor/filemanager/connectors/php/目录下。我当时改这两个文件时,把每个参数都查了文档,现在把重点掰给你听。

  • config.php:把“路径”和“权限”掰正
  • config.php是Fckeditor的主配置文件,里面的basePathUploadPathUploadURL是关键,错一个都会出问题。

    先说basePath参数:这个是Fckeditor在你项目里的“根路径”。比如你把Fckeditor文件夹放在项目的/fckeditor/目录下(也就是http://你的域名/fckeditor/能访问到),那basePath就要设为'/fckeditor/'——注意前后都要加斜杠,多一个少一个都会错。我之前试过把basePath写成'/fckeditor'(没 斜杠),结果Fckeditor加载时找不到editor.js文件,页面直接乱了。

    然后是UploadPath参数:这个是图片的“存储路径”,也就是你想把上传的图片存在哪里。Fckeditor默认是存在../uploads/(相对于basePath的路径),比如basePath'/fckeditor/'UploadPath'../uploads/images/',就是指项目根目录下的uploads/images文件夹。这里要注意两点:① 文件夹必须提前创建,不然上传时会提示“无法创建目录”;② 文件夹的权限要对——服务器运行的用户(比如Apache是www-data,Nginx是nginx)得有“写权限”。怎么设权限?用chown命令把文件夹所有者改成服务器用户:sudo chown -R www-data:www-data /var/www/html/uploads/images,再用chmod设为755sudo chmod -R 755 /var/www/html/uploads/images)。我之前图省事设了777(所有人都能写),结果被服务器安全扫描工具警告,后来改成755就安全了。

    再讲UploadURL参数:这个是图片的“访问URL”,也就是前端显示图片时用的链接。比如你的网站域名是http://www.xxx.comUploadPath../uploads/images/,那UploadURL就要设为'http://www.xxx.com/uploads/images/'——注意要写全域名,不然前端会用相对路径,导致图片显示不出来。我之前试过写相对路径'../uploads/images/',结果上传的图片src是http://www.xxx.com/fckeditor/../uploads/images/123.jpg,虽然能访问,但看着别扭,改成全域名更稳妥。

    给你列个config.php的关键参数对照表,直接抄就行:

    参数名 默认值 推荐设置 注意事项
    basePath ‘/fckeditor/’ 根据你的Fckeditor目录调整,比如’/fckeditor/’ 前后斜杠不能少
    UploadPath ‘../uploads/’ ‘../uploads/images/’(存在项目根目录的uploads/images) 文件夹要提前创建,权限设为755
    UploadURL ‘http://localhost/uploads/’ ‘http://你的域名/uploads/images/’ 必须写全域名,不然图片显示不出来

  • uploader.php:解决“传了找不到”的问题
  • uploader.php是处理文件上传的脚本,里面的AllowedExtensions(允许的文件类型)和SizeLimit(文件大小限制)是重点。

    先改AllowedExtensions['Image']:这个数组定义了允许上传的图片类型,默认是array('jpg','jpeg','gif','png')。要是你想上传webp或bmp格式,直接加进去就行——比如改成array('jpg','jpeg','gif','png','webp')。我之前帮一个做设计的朋友改配置,他要传webp格式的图片,就是在这加的参数,改完就能传了。

    然后是SizeLimit参数:这个是单文件大小限制,默认是2048000字节(也就是2M)。要是你想允许传5M的图片,改成5120000就行(1M=1024000字节)。但要注意,这个参数不能超过PHP的限制——PHP的php.ini里有两个参数:upload_max_filesize(单文件最大大小)和post_max_size(POST请求的最大大小)。比如你把SizeLimit改成5M,那php.ini里的upload_max_filesize得设为5Mpost_max_size得设为6M(比upload_max_filesize大一点,因为POST请求还包含其他数据)。我朋友当时想传8M的图片,把SizeLimit改成8M,结果上传时提示“文件太大”,后来查php.ini发现upload_max_filesize还是2M,改了之后才解决。

    最后讲overwrite参数:这个是“是否覆盖同名文件”,默认是false(不覆盖,会在文件名后加数字,比如123.jpg变成123(1).jpg)。要是你想覆盖同名文件,改成true就行,但 保持默认,避免误删文件。

    测试和排错:遇到问题不用慌,按这个步骤查

    改完配置,赶紧测试一下——打开Fckeditor的编辑器页面,点击“插入图片”按钮,选个图片上传。要是成功了,会显示图片预览;要是失败了,按下面的步骤查:

  • 提示“无法创建目录”:先查UploadPath对应的文件夹是不是存在,比如../uploads/images/有没有创建;再查文件夹权限,是不是服务器用户有写权限(用ls -l命令看,文件夹所有者是不是www-datanginx)。
  • 提示“文件类型不允许”:查uploader.php里的AllowedExtensions['Image']数组,是不是漏了对应的文件类型;再查图片的后缀名是不是小写(Fckeditor默认区分大小写,比如123.JPG会被当成不允许的类型,改成123.jpg就行)。
  • 提示“文件太大”:查uploader.phpSizeLimit参数,再查php.iniupload_max_filesizepost_max_size
  • 传完图片显示“破碎图标”:用浏览器的“开发者工具”(F12)看图片的src属性,比如http://你的域名/uploads/images/123.jpg,复制这个URL到新标签页打开——要是显示404,说明UploadURL设错了,或者服务器没配置对路径;要是能打开,说明Fckeditor的前端路径有问题,再检查config.phpUploadURL参数。
  • 我当时传完图片显示破碎图标,就是用这个方法查的——复制src到新标签页,发现是http://localhost/fckeditor/../uploads/images/123.jpg,其实这个路径是对的,但因为我用Nginx时没配置root目录,Nginx找不到这个文件,后来加了root /var/www/html;就好了。

    你按这些步骤改完,要是还遇到问题,把错误提示截图发我评论区,我帮你看看——毕竟我踩过的坑比你吃过的泡面还多。或者你改成功了,也来报个喜,让我沾沾你的好运~


    上传图片提示“无法创建目录”,你先别急着调Fckeditor的参数,第一步一定要先去核对文件夹的位置和存在性——Fckeditor不会自动帮你创建上传目录,得你手动建!比如你在config.php里写的UploadPath是“../uploads/images/”,这个路径对应的是项目根目录下的uploads/images文件夹(不是Fckeditor文件夹里的子目录)。我之前帮朋友弄本地论坛时,他就犯了个低级错:把uploads建在Fckeditor文件夹里,结果路径完全不对,一直提示无法创建,后来把文件夹挪到项目根目录才解决。要是你不确定路径对不对,直接用服务器命令“ls 路径”查一下,比如“ls /var/www/html/uploads/images”,能看到文件夹里的内容才说明建对了。

    文件夹建对了还不行?那90%是权限没给对——服务器运行的用户(Apache是www-data,Nginx是nginx)得有“写”这个文件夹的资格,不然就像你想往别人抽屉里放东西,没经过允许肯定放不进去。怎么改权限?你可以用“sudo chown -R www-data:www-data 你的文件夹路径”把文件夹的“主人”改成服务器用户,比如“sudo chown -R www-data:www-data /var/www/html/uploads/images”;然后用“sudo chmod -R 755 你的文件夹路径”设置权限——755是说主人能读能写能执行,其他人只能读和执行,既安全又能用。别图省事设777(所有人都能写),我之前帮一个做设计的朋友弄时,他设了777,结果被服务器安全扫描工具警告,后来改成755就没事了。要是你不知道自己服务器用的是什么用户,直接搜“你的服务器软件+默认用户”,比如“Apache默认用户”,一查就知道。


    Fckeditor支持PHP8及以上版本吗?

    原版Fckeditor对PHP8及以上版本兼容性较差,会出现“Call to undefined function ereg_replace()”等错误(因PHP8移除了部分旧函数)。若需使用PHP8,可找第三方修改的Fckeditor适配版,但稳定性不如原版;更稳妥的方式是降级到PHP5.6-7.4版本。

    上传图片时提示“无法创建目录”,该怎么解决?

    先检查Fckeditor配置中UploadPath对应的文件夹(如../uploads/images/)是否已手动创建;再确认文件夹权限——服务器运行用户(Apache为www-data、Nginx为nginx)需有写权限,可通过sudo chown -R www-data:www-data 目录路径修改所有者,或chmod 755 目录路径设置权限。

    上传JPG/PNG图片提示“文件类型不允许”,怎么办?

    首先检查uploader.php中AllowedExtensions[‘Image’]数组是否包含对应后缀(如jpg/jpeg/png);其次确保图片后缀为小写(Fckeditor默认区分大小写,123.JPG会被识别为不允许的类型,需改为123.jpg)。

    上传大图片提示“文件太大”,除了改Fckeditor,还需调整什么?

    Fckeditor的SizeLimit参数(单文件大小限制)不能超过PHP的配置:需打开php.ini,将upload_max_filesize(单文件最大大小)设为比SizeLimit大的值(如SizeLimit设为5M,upload_max_filesize需≥5M),同时post_max_size(POST请求总大小)需比upload_max_filesize大(如6M),修改后重启服务器生效。

    图片上传成功但显示破碎图标,怎么排查?

    用浏览器“开发者工具”(F12)查看图片src属性(如http://你的域名/uploads/images/123.jpg),复制该URL到新标签页:若显示404,说明UploadURL配置错误(需写全域名)或服务器未正确指向该路径;若能打开图片,则检查Fckeditor前端路径是否与config.php的basePath一致。

    原文链接:https://www.mayiym.com/46719.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码