ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Загрузка изображений, создание превью. Трабла в Ie
  #1  
Старый 22.11.2007, 13:05
Аватар для NNNS
NNNS
Познающий
Регистрация: 26.05.2007
Сообщений: 63
Провел на форуме:
550386

Репутация: 86
Отправить сообщение для NNNS с помощью ICQ
По умолчанию Загрузка изображений, создание превью. Трабла в Ie

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

При загрузке изобржения, оно сейвится в /images/
Из загруженого изображения создается превью изображение.
Имена файлов сохраняются в бд.
В Фаерфоксе Все работает без проблем
В ИЕ изображение загружается в /images/ и дальше дело не идёт.

PHP код:
<?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$nimage0000$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$nimage0000$width$height$width$height);
                    if (!
imagejpeg($image$wwwdir.$fileinfo['name'], 80))
                                        {
                                                return 
false;
                                        }
                                }
                if (
$extension == 'png' && $gdinfo['PNG Support'] == )
                {
                    
$nimage        imagecreatefrompng($fileinfo['tmp_name']);                           
                    
imagecopyresampled($image$nimage0000$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$src0000$w_dest$h_dest$w_src$h_src);

$dest imagecreatetruecolor($w,$w);

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

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

// квадратная картинка масштабируется без вырезок
if ($w_src==$h_srcimagecopyresampled($dest$src0000$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$src0000$w_dest$h_dest$w_src$h_src);

$dest imagecreatetruecolor($w,$w);

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

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

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


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

  #2  
Старый 22.11.2007, 16:29
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Картинка в базу попадает? Подкажи участок, который непосредственно выводит злополучную картинку.
 
Ответить с цитированием

  #3  
Старый 22.11.2007, 16:56
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

[x26]VOLAND, да всё верно... MySQL допускает такое написание, а между кавычек он вставляет значения переменных...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация изображений для графических поисковиков Solide Snake Статьи 0 27.10.2007 21:37
трабла с Hp 6340 нестабильная загрузка системы ;-( TTN_ Схемы и программы 1 26.11.2006 01:27
Создание виртуальных файловых систем в Linux _GaLs_ *nix 0 20.11.2006 20:05
Создание чата! Болталка 35 23.02.2003 19:54
Создание чата! Чаты 0 27.01.2003 16:07



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ