从服务器保存图像时,文件格式错误(gif而不是jpg)问题 - PHP

时间:2010-01-25 01:18:40

标签: php image jpeg gif save

我正在使用这段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 个答案:

答案 0 :(得分:1)

您需要做的就是更新以下行:

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

要:

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

我认为这不是你的foreach循环停止的原因。

答案 1 :(得分:0)

使用fileinfo functions而不是猜测图像的类型。