資源描述:
《dede圖片集上傳圖片時出錯顯示(fileid)的解決辦法》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、DEDE圖片集上傳圖片時出錯顯示(FILEID)的解決辦法經(jīng)過測試,在我的VPS上是可行的,壇子里沒有搜索到,所以特別在這里分享下,如果遇到過這問題的,就可以照此方法嘗試了。某日,某使用DeDeCMSv5.5的網(wǎng)站在后臺上傳圖片時出現(xiàn)如下錯誤:作為web生手的我很是迷茫。印象里之前并沒有做什么改動,于是百思不得其解。Google、百度、DeDe官網(wǎng)搜索了一大圈,發(fā)現(xiàn)有這個問題的人不少,但是沒有一個給出解決的辦法。只好自己試著分析分析……找到提示出錯的相關(guān)js文件:DEDECMS教程-ASQQ8.NET/dede/handlers.js發(fā)現(xiàn)有這么一段:functionuploadSucce
2、ss(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)
3、;?}else{??addImage("img/error.gif",0);??progress.setStatus("有錯誤!");??progress.toggleCancel(false);??alert(serverData);?}}catch(ex){?this.debug(ex);}}其中:if(serverData.substring(0,7)==="FILEID:")這句的判斷為假導(dǎo)致如上圖的問題。查看serverData的值沒有發(fā)現(xiàn)什么異常,但是判斷始終為假問題就出在serverData.substring(0,7)始終都不等于"FILEID:"調(diào)整了截取邊界也一樣有錯
4、,于是乎,請來了HttpAnalyzer一看,哦,原來如此:雖然這么看著沒什么問題DEDE教程-ASQQ8.NET但實際問題在這:前面多了三個字節(jié):efbbbf大致一找原來這是utf-8的bom問題,是修改文件時在文件頭自動加入的這三個字節(jié)導(dǎo)致的連鎖反應(yīng)但是那么多文件要找出是哪個文件的問題倒是有點頭大……網(wǎng)絡(luò)資源網(wǎng)-ASQQ8.NET后來找到一篇文章《轉(zhuǎn)兩篇移除PHP中BOM的方法》按照其中給出的清除BOM的代碼解決了這個問題代碼如下:
5、onfigthebasedir$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("$based
6、ir/$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[2]=substr($contents,1,1);$charset[3]=substr($contents,2,1);if(ord($c
7、harset[1])==239&&ord($charset[2])==187&&ord($charset[3])==191){?if($auto==1){??$rest=substr($contents,3);??rewrite($filename,$rest);??return("BOMfound,automaticallyremoved.");?}else{??return("