Хелп! Проблема с IE! С меня пиво!

DG
На сайте с 22.11.2007
Offline
0
367

Проблема с созданием превью изображений в IE.

В Mozilla Firefox все работает без траблем. Нужен хелп по устранению баги.

При загрузке изобржения, оно сейвится в /images/

Из загруженого изображения создается превью изображение.

Имена файлов сохраняются в бд.

В Фаерфоксе Все работает без проблем

В ИЕ изображение загружается в /images/ и дальше дело не идёт.

<?php

#error_reporting(0);
include_once("config.php");
$id = $_POST['id'];
$id = intval($id);
function makepic($fileinfo,$wwwdir)
{
$allowed = array ('gif','png','jpg');
$filename = trim($fileinfo['name'], "\x00..\x1F");
$tmpname = explode('.',$filename);
$extension = $tmpname[count($tmpname)-1];
$allowed = in_array($extension,$allowed) ? true : false ;
if ($allowed)
{
if (extension_loaded('gd'))
{
list($width, $height) = getimagesize($fileinfo['tmp_name']);
$gdinfo = gd_info();
$image = imagecreatetruecolor($width, $height);
if ($extension == 'gif' && $gdinfo['GIF Create Support'] )
{

$nimage = imagecreatefromgif($fileinfo['tmp_name']);
imagecopyresampled($image, $nimage, 0, 0, 0, 0, $width, $height, $width, $height);
if (!imagegif($image, $wwwdir.$fileinfo['name'], 80))
{
return false;
}
}
if ($extension == 'jpg' and $gdinfo['JPG Support'] )
{
$nimage = imagecreatefromjpeg($fileinfo['tmp_name']);
imagecopyresampled($image, $nimage, 0, 0, 0, 0, $width, $height, $width, $height);
if (!imagejpeg($image, $wwwdir.$fileinfo['name'], 80))
{
return false;
}
}
if ($extension == 'png' && $gdinfo['PNG Support'] == 1 )
{
$nimage = imagecreatefrompng($fileinfo['tmp_name']);
imagecopyresampled($image, $nimage, 0, 0, 0, 0, $width, $height, $width, $height);
if (!imagepng($image, $wwwdir.$fileinfo['name'], 80))
{
return false;
}
}
return true;
}
else
{
return true;
}
}
else
{
return false;
}

}


if (!empty($_FILES))
{
if (makepic($_FILES['userfile'],"$uploaddir"))
{
$id == '1';
list($mus, $typer) = explode("/",$_FILES['userfile']['type']);
if ($typer =="jpeg" || $typer == "pjpeg" || $typer == "jpg") {$ras = "jpg";}
if ($typer == "gif" ) {$ras = "gif";}
rename($uploaddir.$_FILES['userfile']['name'],$uploaddir.$id.".".$ras);
$new_name = $id.".".$ras;
if ($typer=="jpeg" OR $typer=="jpg" OR $typer=="JPEG" OR $typer=="JPG")
{thumb_jpeg($new_name);
$image=$new_name;
$thumbs="tmb_$image";
$Link = mysql_connect ($Host, $User, $Password);
$Query = "UPDATE $TableName SET image='$image', thumbs='$thumbs' where id='$id'";
$Result = mysql_db_query ($DBName, $Query, $Link);
mysql_close ($Link);
#echo "<html><head><meta http-equiv=\"refresh\" content=\"3; url=index.php\"></head><body></body></html>";
chmod ("images/$image",0775);}else{
if($typer=="gif" OR $typer=="GIF")
{thumb_gif($new_name);
$image=$new_name;
$thumbs="tmb_".$image;
chmod ("thumbs/$thumbs",0775);
$Link = mysql_connect ($Host, $User, $Password);
$Query = "UPDATE $TableName SET image='$image', thumbs='$thumbs' where id='$id'";
$Result = mysql_db_query ($DBName, $Query, $Link);
mysql_close ($Link);
#echo "<html><head><meta http-equiv=\"refresh\" content=\"3; url=index.php\"></head><body></body></html>";

} else {
#print "<html><head><meta http-equiv=\"refresh\" content=\"0; url=index.php\"></head><body></body></html>";
}
}
} else{
#echo "<html><head><meta http-equiv=\"refresh\" content=\"0; url=index.php\"></head><body></body></html>";
}
}

function thumb_jpeg($image_name)
{
// f - имя файла
// type - способ масштабирования
// q - качество сжатия
// src - исходное изображение
// dest - результирующее изображение
// w - ширниа изображения
// ratio - коэффициент пропорциональности
// str - текстовая строка

if (!isset($q)) $q = 75;

$w = 150;
// создаём исходное изображение на основе исходного файла и опеределяем его размеры
$src = imagecreatefromjpeg("images/$image_name");
$w_src = imagesx($src);
$h_src = imagesy($src);
// вычисление пропорций
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);

// создаём пустую картинку
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);

$dest = imagecreatetruecolor($w,$w);

// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src>$h_src)
imagecopyresampled($dest, $src, 0, 0,round((max($w_src,$h_src)-min($w_src,$h_src))/2),0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));

// вырезаем квадратную верхушку по y,если фото вертикальное (хотя можно тоже серединку)
if ($w_src<$h_src) imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w,min($w_src,$h_src), min($w_src,$h_src));

// квадратная картинка масштабируется без вырезок
if ($w_src==$h_src) imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w, $w_src, $w_src);


// вывод картинки и очистка памяти
ImageJPEG($dest,"thumbs/tmb_".$image_name,$q);
imagedestroy($dest);
imagedestroy($src); }

function thumb_gif($image_name)
{
// q - качество сжатия
// src - исходное изображение
// dest - результирующее изображение
// w - ширниа изображения
// ratio - коэффициент пропорциональности
// str - текстовая строка

if (!isset($q)) $q = 75;

$w = 150;
// создаём исходное изображение на основе исходного файла и опеределяем его размеры
$src = imagecreatefromgif("images/$image_name");
$w_src = imagesx($src);
$h_src = imagesy($src);
// вычисление пропорций
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);

// создаём пустую картинку
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);

$dest = imagecreatetruecolor($w,$w);

// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src>$h_src)
imagecopyresampled($dest, $src, 0, 0,round((max($w_src,$h_src)-min($w_src,$h_src))/2),0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));

// вырезаем квадратную верхушку по y,если фото вертикальное (хотя можно тоже серединку)
if ($w_src<$h_src) imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w,min($w_src,$h_src), min($w_src,$h_src));

// квадратная картинка масштабируется без вырезок
if ($w_src==$h_src) imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $w, $w_src, $w_src);


// вывод картинки и очистка памяти
imagegif($dest,"thumbs/tmb_".$image_name,$q);
imagedestroy($dest);
imagedestroy($src);
}

?>
A.Perez
На сайте с 04.10.2005
Offline
55
#1

это тебе не сюда, это тебе читать статьи на webscript.ru , я правда подозреваю что это у тебя стандартный пример, удосужься уж сам ошибку найди

Бесплатный трафик (/ru/forum/176138)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий