今天介绍一下Fckeditor上传图片函数在PHP中的配置方法,涉及到Fckeditor上传图片上传路径的配置,Fckeditor上传图片大小限制的设置,Fckeditor上传图片文件名重复和乱码的解决,上传图片水印的实现方法。只要掌握了以上四点,Fckeditor在大部分PHP网站的应用就可以解决了。
开启Fckeditor上传图片功能
考虑到目录安全,Fckeditor2.6.6默认的上传功能是不开启的,所以我们必须在第一步开启Fckeditor的上传功能。这里需要注意的是,由于Fckeditor的PHP版本的上传功能需要chomod函数来设置新建目录的权限,所以在启用Fckeditor的上传功能时,请确保PHP环境下的用户拥有创建和更改上传目录的权限。
如果Fckeditor的上传功能没有打开,点击插入/编辑图片按钮,选择上传,选择要上传的文件后,点击发送到服务器按钮,会报错如下
复制代码如下:此文件上传程序被禁用。请检查“editor/file manager/connectors/PHP/config . PHP”文件。
根据错误信息,打开编辑器/文件管理器/连接器/PHP目录中的config.php并找到
复制代码如下:$ Config[ Enabled ]=false;
换成
复制代码如下:$ Config[ Enabled ]=true;
在相应目录下建立了userfiles上传目录后,开启Fckeditor上传图片的功能。
特别提醒:Fckeditor好像有个BUG漏洞,就是JS兼容性不完善。之前我在Google Chrome浏览器下设置好之后,Fckeditor PHP的上传一直没有实现。换了IE之后一切正常。
Fckeditor上传图片时上传路径配置教程
作为一个独立的网站开发者,除了考虑技术,你还需要兼顾其他的便利性,比如SEO优化,而目录结构(URL)优化是SEO的一部分,所以在设置Fckeditor的图片上传功能时,你需要考虑图片上传路径的问题。
Fckeditor默认的图片上传路径结构有两种形式:userfiles/文件名和userfiles/文件类型/文件名。Fckeditor的上传方式有两种:QuickUpload(图片属性中的上传)和server tour upload(图片属性中的链接),比如上传图片。快速上传模式的上传路径是userfiles/文件名,服务器巡回上传模式的上传路径是userfiles/images/文件名。
Fckeditor图片上传路径配置如下
在编辑器/文件管理器/连接器/PHP目录中打开config.php文件并找到
复制代码如下:$ config[ user files path ]=/user files/;
换成
复制代码如下:$ Config[ user files path ]=/project directory/user files/;
注意:这里的userfiles文件夹是http://localhost/的根目录。
以上是Fckeditor默认上传路径的配置。可以根据URL计划自定义Fckeditor的上传目录。只需修改config.php文件中四个上传目录路径的值:$ config [filetypepath]、$ Config[ filetypesabsolutepath ]、$Config[QuickUploadPath]和$ Config[ quick upload absolute path ]。这种方法在一定程度上也可以避免Fckeditor上传图片重名的问题。
限制Fckeditor上传图片大小设置
默认情况下,Fckeditor2.6.6不限制上传的图像文件的大小。可以通过两种方法来改善。一种方法可以限制PHP的上传大小。INI配置文件,而其他方法只能手动修改Fckeditor源代码。这些方法如下
1.在editor/file manager/connectors/PHP目录下打开Config.php,创建config变量来设置上传的图片大小,这里以KB为单位。
复制代码如下:$ Config[ MaxImageSize ]= 1024 ;
2.在编辑器/文件管理器/连接器/php目录中打开commands.php并找到
复制代码如下:if (isset ($ config [安全图像上传]){ if(($ isimage valid=isimage valid($ ofile[ tmp _ name ],$ sex tension))==false){ $ error number= 202 ;}//上传图像大小限制}
在上传图片大小限制处,添加
复制代码如下:if(isset($ config[ max image size ]){ $ I file size=round($ ofile[ size ]/1024);if($ iFileSize $ Config[ MaxImageSize ]){ $ ser ror number= 204 ;} }
注意:因为PHP是以字节计算上传的图片大小的,所以代码先把上传的图片大小转换成KB,然后比较是否超过指定的图片大小。如果是这样,将会报告一个错误。
最后,请注意
复制代码如下:if(!$ ser error number is allowed ext($ sex tension,$ resource type)) {//fckeditor上传图片函数} else $ sErrorNumber= 202
去掉代码末尾的else语句,否则无法实现Fckeditor限制上传图片文件大小的功能。
3.打开editor/dialog/fck _ image/fck _ image . js,添加errorNumber信息,找到OnUploadCompleted函数,添加
复制代码如下:案例204: alert (securityerror。文件大小错误。);返回;
至此,Fckeditor中限制上传图片文件大小的配置已经完成,其他类型的上传文件大小限制也是同样的思路。
Fckeditor上传图片文件名重名及中文乱码解决方法
经过测试,Fckeditor2.6.6并没有解决上传文件中文名变成乱码的问题。这是因为Fckeditor在实现上传功能时没有对文件进行重命名,容易导致重名和图像文件乱码的问题。
对上传的重名和乱码图片的解决方案如下
在editor/file manager/connectors/PHP目录中打开commands.php,找到FileUpload函数,它显示在
复制代码如下:$ sextension=substr ($ s filename,(strrpos ($ s filename,.) 1));$ sex tension=strtolower($ sex tension);
添加后
复制代码如下:$ s filename=rand (0,100)。.。$ sextension
在这里,rand函数可以根据需要自己更改重命名规则。
另一种解决上传图片文件名乱码的方法是使用iconv函数对文件名进行编码,但还是存在重名的问题,所以最好给Fckeditor重新命名上传图片的文件名。
Fckeditor上传图片添加水印功能
对于网站所有者来说,需要保护图片的版权,添加水印。我们可以利用PHP的水印功能结合Fckeditor的FileUpload功能来实现图像水印功能。水印功能请参考文章PHP图像水印功能:支持图片和文字水印。
至此,Fckeditor关于PHP环境下上传镜像配置的入门教程已经介绍完毕。