POST TIME:2020-04-02 17:25
我們有時在圖集欄目上傳圖片時出現(xiàn)FILEID:X錯誤,但是在附件管理里面能夠看到已經(jīng)上傳成功的圖片文件。
如下圖:
本地安裝了一下新版的V57GBK,測試了一番,沒有發(fā)現(xiàn)該問題,登錄到一個朋友提供的存在該問題的站點后臺,注意到為UTF-8版本,遂詳細測試了一番,查看了管理目錄下的swfupload.php做了幾個斷點測試,在生成縮略圖那里找到了問題的原因。
查看一下你的include/common.inc.php 的文件格式UTF-8編碼的朋友,注意將格式調(diào)整為UTF-8 無BOM格式,GBK編碼的朋友,注意將格式調(diào)整為ANSI(使用NotePad++,菜單欄有一格式菜單,打開即可調(diào)整文件格式,當(dāng)然也可以選擇DW,Editeplus 云云)
另外需要注意一點,如果語言編碼使用的為UTF-8編碼的朋友,一定注意,不要用記事本打開修改保存任何系統(tǒng)文件。
現(xiàn)在提供一個縮略圖修復(fù)文件,保存為a.php,放在網(wǎng)站根目錄訪問下就可以了。
如果在訪問a.php的時候報錯如:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
那就試用下面的修改版檢查出有bom的文件自己修改吧。
<?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); echo ("<br><br><font color=green>completed!</font><br>"); function checkdir($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); } } function checkBOM ($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."--------"."<font color=red>BOM found</font><br>"); } else { //return ("<font color=red>BOM found.</font>"); } } //else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?> |
附件下載: