织梦dedecms系统图片集上传时提示错误信息“(FILEID:1|2|3..)的解决办法


网上看到很多朋友遇到使用织梦程序一段时间后,发现上传图集时候老是失败,提示提示FILEID:X错误,缩略图显示为红色Error下面截图错误: 


 

这问题今天也让我头疼了半天,好好的怎么就出现这问题了,我最近好像没修改过啥文件了,最后找资料整理出了解决办法,分享给遇到该问题的朋友:分两步: 

第一步:查看一下你的include/common.inc.php 的文件格式UTF-8编码的朋友,注意将格式调整为UTF-8 无BOM格式,GBK编码的朋友,注意将格式调整为ANSI(使用NotePad++,菜单栏有一格式菜单,打开即可调整文件格式,当然也可以选择DW,Editeplus 云云) 

第二步:给大家提供一个缩略图修复文件,保存为a.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 != ‘.’ && $file != ‘..’){ 

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

     echo “filename: $basedir/$file “; 

     echo checkBOM(“$basedir/$file”).” 

“; 

    }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 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { 

  if ($auto == 1) { 

   $rest = substr($contents, 3); 

   rewrite ($filename, $rest); 

   return (“<span style=”color:red;”>BOM found, automatically removed.</span>”); 

  } else { 

   return (“<span style=”color:red;”>BOM found.</span>”); 

  } 



else return (“BOM Not Found.”); 



function rewrite ($filename, $data) { 

$filenum = fopen($filename, “w”); 

flock($filenum, LOCK_EX); 

fwrite($filenum, $data); 

fclose($filenum); 



?> 

将代码另存为.php,放在网站根目录下运行该文件就可以了。 

运行完毕后刷新后台,上传图片,就成功了! 

运行后记得更新下缓存: