изменить размер изображения при загрузке с помощью verot class.upload.php

3

Я хочу изменить размеры моих изображений при загрузке, которые я нашел в веб-браузере class.upload.php но, к сожалению, это не работает со мной, без загрузки, без изменения размера,.. поэтому мой вопрос заключается в том, что этот api требует каких-то установок, потому что я только загрузил class.upload.php на свой сервер и моя функция подобна этой функции

public  function myImageR()
                     {


        $foo = new Upload($_FILES['img']); 
if ($foo->uploaded) {
   // save uploaded image with no changes
   $foo->Process('/public/images/aa/');
   if ($foo->processed) {
     $a = true;
   } else {
     $a = false;
   }
   // save uploaded image with a new name
   $foo->file_new_name_body = 'foo';
   $foo->Process('/public/images/aa/');
   if ($foo->processed) {
   $a = true;
   } else {
     $a = false;
   }   
   // save uploaded image with a new name,
   // resized to 100px wide
   $foo->file_new_name_body = 'image_resized';
   $foo->image_resize = true;
   $foo->image_convert = gif;
   $foo->image_x = 100;
   $foo->image_ratio_y = true;
   $foo->Process('/public/images/aa/');
   if ($foo->processed) {
    $a = true;
     $foo->Clean();
   } else {
    $a = false;
   } 
}   

                     }

но он не работает вообще, я работаю на localhost с xammp

  • 0
    Он говорит, что для этого требуется библиотека GD, так что вам нужно проверить phpinfo() чтобы проверить, включен ли GD или нет.
  • 0
    да, он включен, но все еще не работает
Показать ещё 1 комментарий
Теги:
file-upload

1 ответ

2
Лучший ответ

Вам нужно установить GD lib... Пример, если вы используете ubuntu:

sudo apt-get install php5-gd

Затем перезапустите Apache

sudo /etc/init.d/apache2 restart

В любом случае, я использую это для изменения размеров изображений, которые я использую:

Загрузить:

   $uploaded_filename = '/www/html/picts/yourfoto.jpg';
   if(isset($_FILES['your_files_field_name'])){
        if (move_uploaded_file($_FILES['your_files_field_name']['tmp_name'], $uploaded_filename)) {
             chmod($uploaded_filename, 0755); 
             return $nome; // OK
         } else {
             return "ERROR"; 
         }
    }

Изменить размер:

<?php


    $w = 40; // set width
    $h = 40; // set height
    $path = './'; // path


$image_file = (string) filter_input(INPUT_GET, 'img');
$image_path = $path . $image_file;
$img = null;
$ext = @strtolower(end(explode('.', $image_path)));


if ($ext == 'jpeg') {
    $img = imagecreatefromjpeg($image_path);
} else if ($ext == 'jpg') {
    $img = imagecreatefromjpeg($image_path);
} else if ($ext == 'png') {
    $img = imagecreatefrompng($image_path);
} elseif ($ext == 'gif') {
    $img = imagecreatefromgif($image_path);
} elseif ($ext == 'bmp') {
    $img = imagecreatefromwbmp($image_path);
} else {
    exit("File type not found: " . $ext);
}


if ($img) {
    $width = imagesx($img);
    $height = imagesy($img);
    $scale = min($w / $width, $h / $height);

    if ($scale < 1) {
        $new_width = floor($scale * $width);
        $new_height = floor($scale * $height);
        $tmp_img = imagecreatetruecolor($new_width, $new_height);
        imagecopyresampled($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
        imagedestroy($img);
        $img = $tmp_img;
    }
}


if (!$img) {
    $img = imagecreate($w, $h);
    imagecolorallocate($img, 204, 204, 204);
    $c = imagecolorallocate($img, 153, 153, 153);
    $c1 = imagecolorallocate($img, 0, 0, 0);
    imageline($img, 0, 0, $w, $h, $c);
    imageline($img, $w, 0, 0, $h, $c);
    imagestring($img, 2, 12, 55, 'IMAGE ERROR', $c1);
}

header('Content-type: ' . 'image/png');
imagejpeg($img);

Если вы хотите сохранить измененный файл на диске:

$file = '/www/html/picts/yourfoto.jpg';
$save = imagejpeg($img, $file); // save the file

Я надеюсь, что эта помощь!

  • 0
    Спасибо, Аллан. Есть ли у вас какие-либо идеи, если серверы веб-хостинга, такие как hostgator, приводят меня к тому, что я могу разместить свой сайт, и он доступен?
  • 0
    Я использую wiredtree.com или любой VPS. Я буду рад, если вы примете мой ответ, если он решит ваш вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню