首页 / 技术分享

DEDE织梦上传图片集出现FILEID和302错误

来源:先域网络 时间:2017-05-15 作者:先域网络

 很多用DEDE织梦后台的seoer朋友都知道,有时候我们在上传图片的时候会出现一些错误,例如302,field1,field2,field13等,那么图片上传不成功怎么办呢?下面小编找了一些资料,和大家一起分享一下。

上传图片302解决办法

上传302图片问题,多半是浏览器兼容问题。

兼容性解决办法

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

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

session_id($_POST["PHPSESSID"]);

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

session_id($_GET["PHPSESSID"]);

}

上传图片集FILEID

错误文件地址js文件: /dede/handlers.js

function uploadSuccess(file, serverData) {

try {

var progress = new FileProgress(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:"

但实际问题在这:

前面多了三个字节:ef bb bf

下面有一个办法可以解决这个一个问题,

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

}

?>

将上面的代码保存在跟目录下保存为a.php,如果报错出现问题那么就复制下面的代码自己修改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 ("

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

}

?>

然后访问文件,如果出现运行正常的话,那么就是解决了!

关闭

提交您的需求

姓名/Name:
公司名称/Company:
邮箱/Email:
电话/Tel:
服务需求: