Проблема с неправильным форматом файла (gif insted of jpg) при сохранении изображений с сервера - PHP - PullRequest
1 голос
/ 25 января 2010

Я использую этот код PHP для сохранения и переименования некоторых изображений.

foreach ($phones as &$value)
{
    $link_img =
    $handle = @fopen($link_img, "r");

    if ($handle) 
    {
        while (!feof($handle)) 
        {
            $buffer .= fgets($handle, 4096);
        }

        fclose($handle);
        $filename = "files/nokia_".$phone_model.".jpg";
        $mystring = fopen($filename, "wb");
        $handle = fopen($filename, "wb");
        $numbytes = fwrite($handle, $buffer);
        fclose($handle);
        unset($buffer);
    }
}

большинство изображений в формате JPG, я думаю, что все файлы имеют расширение .jpg, но одно изображение, с которым я столкнулся, имеет расширение .jpg, но его gif (я думаю), ...

и тогда мой foreach останавливается: (

как с этим справиться?

спасибо за вашу помощь, я многому научился здесь, в stackoverflow, и это мой первый вопрос.

Ответы [ 2 ]

1 голос
/ 25 января 2010

Все, что вам нужно сделать, это обновить следующую строку:

$filename = "files/nokia_".$phone_model.".jpg";

Кому:

$filename = 'files/nokia_' . $phone_model . str_replace('jpeg', 'jpg', image_type_to_extension(exif_imagetype($link_img)));

Не думаю, что это причина, по которой ваш foreach цикл останавливается.

0 голосов
/ 25 января 2010

Используйте функции fileinfo вместо того, чтобы угадывать, к какому типу относятся изображения.

...