Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уменьшение изображения при загрузке, Уменьшение изображения при загрузке 
:(
    Опции темы
Baltazar5000
Дата 4.5.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 6.12.2006

Репутация: нет
Всего: нет



Нужно уменьшить изображение при загрузке на сервер. 
При нажатии кнопки загрузить выдаются следующие ошибки:

Warning: Division by zero in Z:\home\localhost\www\pk3\add_photo.php on line 28

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in Z:\home\localhost\www\pk3\add_photo.php on line 30

Warning: imagecopyresized(): supplied argument is not a valid Image resource in Z:\home\localhost\www\pk3\add_photo.php on line 39

Warning: imagejpeg(): supplied argument is not a valid Image resource in Z:\home\localhost\www\pk3\add_photo.php on line 43
  
Вот код страницы add_photo.php
Код

<?php
$xAction=$_POST['action'];
$theme=$_POST['theme'];
$data=$_POST['data'];
$photo=$_POST['photo'];
include "db.php";
$link=mysql_connect($host,$user_db,$password_db);

mysql_select_db($db);


/**
* $filename string = 'img.jpg' - путь картинки
* $percent string = 300 - ширина уменьшенной копии картинки
* $quality string = 0-100 - качество изображения
**/
function resize ($filename, $size = 615, $quality = 100)
{
    $dir = '/photo/'; // Адрес директории для сохранения картинки
    $ext = strtolower(strrchr(basename($filename), ".")); // Получаем формат уменьшаемого изображения
    $extentions = array('.jpg', '.gif', '.png', '.bmp'); // Определяем формат уменьшаемой картинки
        
    if (in_array($ext, $extentions)) {           
        $percent = $size; // Ширина изображения миниатюры
    
        list($width, $height) = getimagesize($fileaname); // Возвращает ширину и высоту картинки
        $newheight = $height * $percent;
        $newwidth = $newheight / $width; 
    
        $thumb = imagecreatetruecolor($percent, $newwidth);
        switch ($ext) {
            case '.jpg': $source = @imagecreatefromjpeg($filename); break;
            case '.gif': $source = @imagecreatefromgif($filename); break;
            case '.png': $source = @imagecreatefrompng($filename); break;
            case '.bmp': $source = @imagecreatefromwbmp($filename); break;
        }

        // php уменьшение изображения
        imagecopyresized($thumb, $source, 0, 0, 0, 0, $percent, $newwidth, $width, $height);
            
        // Создаем изображение
        switch ($ext) {
            case '.jpg': imagejpeg($thumb, $dir . $filename, $quality); // Для JPEG картинок
                         break;
                
            case '.gif': imagegif($thumb, $dir . $filename); // Для GIF картинки
                         break;
                
            case '.png': imagepng($thumb, $dir . $filename, $quality); // Для PNG картинок
                         break;
                
            case '.bmp': imagewbmp($thumb, $dir . $filename); // Для BMP картинки
                         break;
            }            
    } else return 'typeError'; 
    
    @imagedestroy($thumb);         
    @imagedestroy($source);  
        
    return $filename;


echo "
<table width=100%>
<tr><td width=17% valign=top>";


echo "
</td><td align = center valign=top>";


echo "<br><font size=+2 color=#437099><b>Добавить фото</b></font><br><br>
<form action=add_photo.php method=POST enctype=multipart/form-data>
<input type=file name=uploadfile /><br><br>
<input type=submit name=action value=Загрузить>
</form>";

echo "<FORM method=POST action=add_photo.php>
<br><br>
Тема: <br><input type=text name=theme size=70><br><br>
Дата: <br><input type=text name=data><br><br>
Фотографии:<br><textarea name=photo rows=10 cols=60></textarea><br>
<input type=submit name=action value=Готово>
</FORM>";
switch($xAction)
{

case 'Загрузить': 

resize($_FILES['uploadfile']['name']);

break;
}
echo"
</td><td width=17% align=center valign=top>";
echo"</td></tr></table>";

?>
Заранее благодарю!

Это сообщение отредактировал(а) Baltazar5000 - 4.5.2009, 17:02
PM MAIL   Вверх
baldina
Дата 4.5.2009, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



реальное имя файла, загруженного на сервер, это $_FILES['uploadfile']['tmp_name']

кстати нет необходимости разбирать по частям имя файла, вытаскивая расширение: getimagesize() возвращает и тип файла третьим элементом
PM MAIL   Вверх
awers
Дата 4.5.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Код

function simpleResize($src,$dest,$width = 450,$height = 450, $q = 90){
        
        $size = getimagesize($src);
        if ($size === false) return false;
        
        $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
        $icfunc = "imagecreatefrom" . $format;
        if (!function_exists($icfunc)) return false;
        
        $x_ratio = $width / $size[0];
        $y_ratio = $height / $size[1];
        
        $ratio = min($x_ratio, $y_ratio);
        $use_x_ratio = ($x_ratio == $ratio);
        
        $new_width = $use_x_ratio  ? $width  : $size[0] * $ratio;
        $new_height = !$use_x_ratio ? $height : $size[1] * $ratio;
        
        $isrc = $icfunc($src);
        $idest = imagecreatetruecolor($new_width, $new_height);
        
        imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]);
        imagejpeg($idest,$dest,90);
        
        imagedestroy($isrc);
        imagedestroy($idest);
        
        return true;
    }


Может и поможет
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0911 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.