Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Создание 2 типов изображений

Сообщения:  [1-3] 

 
 автор: task   (19.03.2012 в 07:04)   письмо автору
 
   для: kapitalist   (18.03.2012 в 22:53)
 

Прежде чем перемещать загруженный файл, нужно проверить ошибки, именно их отсутствие, а не наличие 'tmp_name' является признаком успешной загрузки.
Для того чтобы уменьшить изображение, совсем не обязательно его сохрять предварительно.
Зачем объявлять две переменных с одним и тем же значением?

  Ответить  
 
 автор: SerG7   (19.03.2012 в 01:22)   письмо автору
 
   для: kapitalist   (18.03.2012 в 22:53)
 

1.Изучить php....
2.переписать функцию  function resize($photo_src, $width, $name){
добавив $height и алгоритм изменения пропорций (уменьшения или вырезки части оригинала...)
3.(if @file_exists($tmp)) { ...читаем

http://www.softtime.ru/dic/id_dic=173&id_group=6...собака лишняя

порадовала строка...что это....
 if (preg_match('{image/(.*)}is', $info['mime'], $p)) { 


вместо $info = @getimagesize($_FILES['userfile']['tmp_name']);
<?
    
if(!empty($_FILES['userfile']['tmp_name'])) {
      
$info getimagesize($_FILES['userfile']['tmp_name']);
    }
или 
$info
=!empty($_FILES['userfile']['tmp_name'])?getimagesize($_FILES['userfile']['tmp_name']):NULL;



а вообще.... переписать алгоритм загрузки...тут по форуму много информации на эту тему

  Ответить  
 
 автор: kapitalist   (18.03.2012 в 22:53)   письмо автору
 
 

Есть такой код
// создание большого изображения
$messages = array();
$time = time();
$ext = '.jpg';
$imgDir = "avatars/big/"; // каталог для хранения изображений
$imgBD = "avatars/big/"; // каталог для хранения изображений
@mkdir($imgDir, 0777);
if (isset($_POST['doUpload'])) {
    $data = $_FILES['userfile'];
    $tmp = $data['tmp_name'];
    if (@file_exists($tmp)) {
        $info = @getimagesize($_FILES['userfile']['tmp_name']);
        if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
            $newwidth = 550;
 $newname = $imgBD.$time.$ext;
 $newname2 = $imgDir.$time.$ext;
            if ($info[0] < $newwidth){
               if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newname)) {
              $messages[] = "";
            }
            else {
              $messages[] = "Ошибка загрузки файла!";
            }
            }
            else {
               if(resize($tmp, $newwidth, $newname)){
                $messages[] = "Рисунок был успешно загружен и преобразован";
              }
              else {
                $messages[] = "Произошла ошибка при загрузке файла";
              }
            }
        }
        else {
            $messages[] = "Ошибка! Попытка загрузить файл недопустимого формата.";
        }
    }
    else {
        $messages[] = "Файл не был загружен.";
    }
}


 function resize($photo_src, $width, $name){
 $parametr = getimagesize($photo_src);
 list($width_orig, $height_orig) = getimagesize($photo_src);
 $ratio_orig = $width_orig/$height_orig;
 $new_width = $width;
 $new_height = $width / $ratio_orig;
$newpic = imagecreatetruecolor($new_width, $new_height);
switch ( $parametr[2] ) {
  case 1: $image = imagecreatefromgif($photo_src);
  break;
  case 2: $image = imagecreatefromjpeg($photo_src);
  break;
  case 3: $image = imagecreatefrompng($photo_src);
  break;
}
imagecopyresampled($newpic, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
imagejpeg($newpic, $name, 100);
return true;
 }
// создание изображения закончено

Хочу сделать, чтобы создавалась еще уменьшенная копия 150х150 пикс. Как это сделать?

  Ответить  

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования