老邦 与人为善 与己方便...
织梦dedecms5.6图集上传缩略图错误的处理办法
发表于: | 分类: 低端技术 | 评论:0

错误描述:

[caption id="attachment_20" align="alignnone" width="469"]织梦dedecms图集上传错误 织梦dedecms图集上传错误[/caption]

错误原因: utf-8的bom问题,是修改文件时在文件头自动加入的这三个字节导致的连锁反应

如图:

[caption id="attachment_23" align="alignnone" width="228"]织梦dedecms图集缩略图错误分析图表1 织梦dedecms图集缩略图错误分析图表1[/caption]

[caption id="attachment_21" align="alignnone" width="495"]织梦dedecms图集缩略图错误分析图表2 织梦dedecms图集缩略图错误分析图表2[/caption]

解决方法:复制以下代码保存为abcd.php放入网站根目录,访问即可。可能出现超时错误。不用管他,关掉上传个图集试下看问题解决了没有。如果还没有,请修改php.ini中的max_execution_time=30参数值调至更大,在运行在文件,成功后实下上传个图集。我是这么解决的。希望能帮到大家

[php]<?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);

function checkdir($basedir){

if ($dh = opendir($basedir)) {

while (($file = readdir($dh)) !== false) {

if ($file != '.' &amp;&amp; $file != '..'){

if (!is_dir($basedir."/".$file)) {

echo "filename: $basedir/$file ";

echo checkBOM("$basedir/$file")." &lt;br&gt;";

}else{

$dirname = $basedir."/".$file;

checkdir($dirname);

}

}

}

closedir($dh);

}

}

function checkBOM ($filename) {

global $auto;

$contents = file_get_contents($filename);

$charset[1] = substr($contents, 0, 1);

$charset[2] = substr($contents, 1, 1);

$charset[3] = substr($contents, 2, 1);

if (ord($charset[1]) == 239 &amp;&amp; ord($charset[2]) == 187 &amp;&amp; ord($charset[3]) == 191) {

if ($auto == 1) {

$rest = substr($contents, 3);

rewrite ($filename, $rest);

return ("&lt;font color=red&gt;BOM found, automatically removed.&lt;/font&gt;");

} else {

return ("&lt;font color=red&gt;BOM found.&lt;/font&gt;");

}

}

else return ("BOM Not Found.");

}

function rewrite ($filename, $data) {

$filenum = fopen($filename, "w");

flock($filenum, LOCK_EX);

fwrite($filenum, $data);

fclose($filenum);

}

?>
[/php]


添加新评论


TOP