一个菜鸟的互联网技术分享博客
您的位置: 主页 > DedeCMS图集上传图片出现FILEID:X报错终极解决方法
advertisement

DedeCMS图集上传图片出现FILEID:X报错终极解决方法

在使用DEDECMS建站时候出现图集上传失败,如图所示:

1HQH249-0.jpg

解决方案:

方法一:

首先检查upload目录权限

然后检查下是否为utf-8无bom格式。

可通过以下文件放到根目录检查,直接保存为a.php然后预览就可以了
 

  1. <?php  
  2. //remove the utf-8 boms  
  3. if (isset($_GET['dir'])){ //config the basedir  
  4.  $basedir=$_GET['dir'];  
  5. }else{  
  6.  $basedir = '.';  
  7. }  
  8. $auto = 1;  
  9. checkdir($basedir);  
  10. echo ("<br><br><font color=green>completed!</font><br>");  
  11. function checkdir($basedir)  
  12. {  
  13.  if ($dh = opendir($basedir))   
  14.  {  
  15.   while (($file = readdir($dh)) !== false)   
  16.   {  
  17.    if ($file != '.' && $file != '..')  
  18.    {  
  19.     if (!is_dir($basedir."/".$file))   
  20.     {  
  21.      //echo "filename: $basedir/$file ";  
  22.      checkBOM("$basedir/$file");  
  23.     }  
  24.     else  
  25.     {  
  26.      $dirname = $basedir."/".$file;  
  27.      checkdir($dirname);//ruoshuiyx.com  
  28.     }  
  29.    }  
  30.   }  
  31.   closedir($dh);  
  32.  }  
  33.    
  34. }  
  35. function checkBOM ($filename) {  
  36.  global $auto;  
  37.  $contents = file_get_contents($filename,NULL,NULL,0,10);  
  38.  $charset[1] = substr($contents, 01);  
  39.  $charset[2] = substr($contents, 11);  
  40.  $charset[3] = substr($contents, 21);  
  41.  if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {  
  42.   if ($auto == 1) {  
  43.    //$rest = substr($contents, 3);  
  44.    //rewrite ($filename, $rest);  
  45.    echo ($filename."--------"."<font color=red>BOM found</font><br>");  
  46.   } else {  
  47.    //return ("<font color=red>BOM found.</font>");  
  48.   }  
  49.  }  
  50.  //else return ("BOM Not Found.");  
  51. }  
  52. function rewrite ($filename, $data) {  
  53.  $filenum = fopen($filename, "w");  
  54.  flock($filenum, LOCK_EX);  
  55.  fwrite($filenum, $data);  
  56.  fclose($filenum);  
  57. }  
  58. ?>    


方法二:

大致都是说只有UTF-8编码的才会有问题。

试了第一个发现不能用,按照那个方法处理完还是会出现那个问题。再打开下面的哪些链接,发现居然都是转载的同一个文章,作者瞬间凌乱了。这种不能解决问题的方法为何大家争相转载呢?作者继续找,终于找到了。

具体方法如下:

在/dede/swfupload.php的

echo "FILEID:".$_SESSION['fileid'];
的上边加一句
ob_end_clean();

这回能上传了,但上传后图片依然输不出来,于是在chrome的指引下,还多出几个回车,于是这的上边加一句,在
header('Content-type: image/jpeg'); 
header('Content-Length: '.strlen($_SESSION['file_info'][$id]));
的上边加一句
ob_end_clean();
这回终于可以输出了!看来ob_end_clean(); 函数的作用很大啊!

效果图如下:

zhangren.online
上一篇:DEDE后台副栏目调用无效
下一篇:DEDE后台生成没反应,更新不了解决方案

您可能喜欢

回到顶部