DEDE图片集上传图片时出错显示

DEDE图片集上传图片时出错显示,第1张

DEDE图片集上传图片时出错显示(FILEID)的解决方法

经过测试,在我的VPS上是可行的,但是在泡菜坛子里没有发现。所以,如果你遇到过这个问题,可以这样试试。

某日,某应用DeDeCMSv5.5的网址在后台管理上传照片时出現以下不正确:
做为web生手的我很是茫然。印像里以前并沒有干什么修改,因此迷惑不解。Google、百度搜索、DeDe官方网站检索了一大圈,发觉有这个问题的人许多,可是没有一个得出处理的方法。只能自身尝试剖析剖析……
寻找提醒失败的有关js文件:
/dede/handlers.js
发觉有那么一段:

复制代码编码以下:
functionuploadSuss="superseo">ss="superseo">ccess(file,serverData){
try{
varprogress=newFileProgress(file,this.customSettings.upload_target);
if(serverData.substring(0,7)==="FILEID:"){
addImage("swfupload.php?dopost=thumbnail&id="serverData.substring(7),serverData.substring(7));
progress.setStatus("获得缩列图...");
progress.toggleCancel(false);
}else{
addImage("img/error.gif",0);
progress.setStatus("有不正确!");
progress.toggleCancel(false);
alert(serverData);
}
}catch(ex){
this.debug(ex);
}
}

在其中:

复制代码编码以下:
if(serverData.substring(0,7)==="FILEID:")

这句话的分辨为假造成如圖的难题。
查询serverData的值沒有发现什么出现异常,可是分辨自始至终为假
难题就出在serverData.substring(0,7)自始至终都并不等于"FILEID:"
调节了提取界限也一样有错,因此,找来了HttpAnalyzer一看,哦,原来这般:
尽管那么看见没有什么难题DEDE实例教程-ASQQ8.NET
但具体难题在这里:
前边多了三个字节数:efbbbf
大概一找原先它是utf-8的bom难题,是改动文档时在文件头全自动添加的这三个字节数造成的链式反应
可是那么多文档要找到是哪个文档的难题倒是有点点头大……互联网资源网-ASQQ8.NET
之后寻找一篇文章《转两篇移除PHP中BOM的方法》依照在其中得出的消除BOM的编码解决了这个问题
编码以下:

复制代码编码以下:
<?php
//removetheutf-8boms
//bymagicbugatgmaildotcom
if(isset($_GET['dir'])){//configthebasedir
$basedir=$_GET['dir'];
}else{
$basedir='.';
}
$auto=1;
checkdir($basedir);
functioncheckdir($basedir){
if($dh=opendir($basedir)){
while(($file=readdir($dh))!==false){
if($file!='.'&&$file!='..'){
if(!is_dir($basedir."/".$file)){
echo"filename:$basedir/$file";
echocheckBOM("$basedir/$file")."
";
}else{
$dirname=$basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
functioncheckBOM($filename){
global$auto;
$contents=file_get_contents($filename);
$charset[1]=substr($contents,0,1);
$charset=substr($contents,1,1);
$charset=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("<fontcolor=red>BOMfound,automaticallyremoved.</font>");
}else{
return("<fontcolor=red>BOMfound.</font>");
}
}
elsereturn("BOMNotFound.");
}
functionrewrite($filename,$data){
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>储存为a.php,放到网址网站根目录浏览下就可以了。
ps:假如在浏览a.php的情况下出错如:
PHPFatalerror:Allowedmemorysizeof134217728bytesexhausted
那么就使用下边的破解版查验出有bom的文档自身改动吧
<?php
//removetheutf-8boms
//bymagicbugatgmaildotcom
if(isset($_GET['dir'])){//configthebasedir
$basedir=$_GET['dir'];
}else{
$basedir='.';
}
$auto=1;
checkdir($basedir);
echo("
<fontcolor=green>completed!</font>
");
functioncheckdir($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);
}
}
functioncheckBOM($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."--------"."<fontcolor=red>BOMfound</font>
");
}else{
//return("<fontcolor=red>BOMfound.</font>");
}
}
//elsereturn("BOMNotFound.");
}
functionrewrite($filename,$data){
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/773606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存