天天看點

dedecms圖檔上傳報錯302

dedecms圖集上傳圖檔提示FILEID和302解決辦法

提示302錯誤原因swfupload在linux環境下session機制問題,解決方法如下:

下面的php代碼粘貼到部落格的時候單引号和雙引号變為中文字元的了,注意修改下哈~!

在include/userlogin.class.php檔案中的第二行session_start();前加上

if (isset($_POST["PHPSESSID"])) {

session_id($_POST["PHPSESSID"]);

} else if (isset($_GET["PHPSESSID"])) {

session_id($_GET["PHPSESSID"]);

}

提示FILEID的是由于utf-8的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);

function checkdir($basedir){

if ($dh = opendir($basedir)) {

while (($file = readdir($dh)) !== false) {

if ($file != ‘.’ && $file != ‘..’){

if (!is_dir($basedir.”/”.$file)) {

echo “filename: $basedir/$file “;

echo checkBOM(“$basedir/$file”).”

“;

}else{

$dirname = $basedir.”/”.$file;

checkdir($dirname);

}

}

}

closedir($dh);

}

}

function checkBOM ($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($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {

if ($auto == 1) {

$rest = substr($contents, 3);

rewrite ($filename, $rest);

return (“<font color=red>BOM found, automatically removed.</font>”);

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

}

?>

儲存為1.php,放在網站根目錄通路一下這個檔案就可以了。

如果出錯的話,提示

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 請嘗試使用以下方法:

<?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 (”

<font color=green>completed!</font>

“);

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>

“);

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

}

?>

檢查帶有bom的檔案,進行手工修改