今天在制作客户的dedecms婚纱模板的时候使用dedecms的图集功能上传图片时会提示FILEID:X错误,缩略图显示为红色Error本地安装了一下DEDECMS新版的V57GBK,测试了一番,没有发现该问题,登录到这个dedecms婚纱网站后台,注意到为UTF-8版本,遂详细测试了一番,查看了管理目录下的swfupload.php做了几个断点测试,在生成缩略图那里找到了问题的原因。
查看一下你的include/common.inc.php 的文件格式UTF-8编码的朋友,注意将格式调整为UTF-8 无BOM格式,GBK编码的朋友,注意将格式调整为ANSI(使用NotePad++,菜单栏有一格式菜单,打开即可调整文件格式,当然也可以选择DW,Editeplus 云云)
另外需要注意一点,如果语言编码使用的为UTF-8编码的朋友,一定注意,不要用记事本打开修
改保存任何系统文件。
搜索论坛的时候,发现有些已经解决的朋友分享了解决办法,其中天若千颖 给出了一个有BOM文件检测的小工具:本文内容下半部分有相关说明、附件。办法总比问题多,遇到问题,我们可以先从论坛入手,解决问题,咱们大家互相分享! ——by:织梦的鱼
如图,一些朋友遇到类似的情况,上传图片是凸显错误提示,但是在附件管理里面能够看到已经上传成功的图片文件。
、
现在提供一个缩略图修复文件,保存为a.php,放在网站根目录访问下就可以了。
s:如果在访问a.php的时候报错如:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
那就试用下面的修改版检查出有bom的文件自己修改吧。
<?php //remove the utf-8 boms //by magicbug at gmail dot com if (isset($_GET['dir'])){ //config the basedir $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); echo ("<br><br><font color=green>completed!</font><br>"); function checkdir($basedir) { if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..') { if (!is_dir($basedir."/".$file)) { //echo "filename: $basedir/$file "; checkBOM("$basedir/$file"); } else { $dirname = $basedir."/".$file; checkdir($dirname); } } } closedir($dh); } } function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename,NULL,NULL,0,10); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { if ($auto == 1) { //$rest = substr($contents, 3); //rewrite ($filename, $rest); echo ($filename."--------"."<font color=red>BOM found</font><br>"); } else { //return ("<font color=red>BOM found.</font>"); } } //else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?> |
附件下载:
缩略图修复工具 |