主頁 > 網(wǎng)站建設(shè) > 建站知識 > 織夢cms圖集上傳圖片縮略圖出現(xiàn)FILEID:X錯誤的解決

織夢cms圖集上傳圖片縮略圖出現(xiàn)FILEID:X錯誤的解決

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);
}
?>

附件下載:

縮略圖修復(fù)文件


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266