Ошибка пути создания эскиза - PullRequest
0 голосов
/ 26 ноября 2011

Я загружаю изображение с uploadify V2.1.4. После загрузки изображения я пытаюсь создать миниатюры размером 60x60 и 80x80 в файле uploadify.php. Миниатюры создаются для файлов формата jpg, png, gif. Но он не создается, когда тип файла jpeg.

$imgsize = getimagesize($targetFile);
switch(strtolower(substr($targetFile, -3)))
{
    case "jpeg":
    case "jpg":
    $image = imagecreatefromjpeg($targetFile);
    break;
    case "png":
    $image = imagecreatefrompng($targetFile);
    break;
    case "gif":
    $image = imagecreatefromgif($targetFile);
    break;
    default:
    exit;
    break;
}

$width = 60; //New width of image
$height=60;

$src_w = $imgsize[0];
$src_h = $imgsize[1];

$picture = imagecreatetruecolor($width, $height);
imagealphablending($picture, false);
imagesavealpha($picture, true);
$bool = imagecopyresampled($picture, $image, 0, 0, 0, 0, $width, $height, $src_w, $src_h);
$image_name='';
if($bool)
{
$image_name=$newf_name;
$parts=explode('.',$newf_name);
$newf_name=$parts[0]."_90X90.".$parts[1];
    switch(strtolower(substr($targetFile, -3)))
    {
            case "jpeg":
        case "jpg":
        header("Content-Type: image/jpeg");
        $bool2 = imagejpeg($picture,$path."thumb/".$newf_name,80);
        break;
        case "png":
        header("Content-Type: image/png");
        imagepng($picture,$path."thumb/".$newf_name);
        break;
        case "gif":
        header("Content-Type: image/gif");
        imagegif($picture,$path."thumb/".$newf_name);
        break;
    }
}

Ответы [ 2 ]

1 голос
/ 26 ноября 2011

Если вы используете codeigniter (как он был помечен), почему бы не использовать класс манипуляции с изображениями codeigniter?

http://codeigniter.com/user_guide/libraries/image_lib.html

Это действительно просто и есть много документации для загрузки изображений исоздать превью!

1 голос
/ 26 ноября 2011
  1. Операционная система компьютера, с которого вы загружаете изображения, является абсолютно неактуальной .

  2. Вместо размещения кода здесьВы должны отладить это самостоятельно.

Слишком мало смысла размещать здесь код.Вы получите только некоторые дикие догадки, в основном не имеющие отношения к вашему делу.
Итак, вам нужно сделать свой код, чтобы сообщить вам, что происходит не так .это называется отладка и является самым важным умением программиста .

Прежде всего вы должны быть уверены, что будете проинформированы обо всех возникших ошибках.
Добавьте эти строки в верхнюю часть вашего кода

ini_set('display_errors',1);
error_reporting(E_ALL);

и посмотрите, говорит ли это что-нибудь.

, если нет - trace шаг за шагом вашей программы.
добавьте несколько exit в ваш код вместе с печатью соответствующих переменных, чтобы проверить, имеют ли они желаемое значение.

...