0

我从某个网站获得了调整照片大小的脚本,基本上它工作得很好,但问题是:只有当我尝试上传其他扩展名时,我才能使用它来上传 JPG 照片:png、gif 我会收到这里的错误我的代码:

<?
if(trim($_FILES["fileUpload"]["tmp_name"]) != "")
{
    $images = $_FILES["fileUpload"]["tmp_name"];
    $new_images = "Thumbnails_".$_FILES["fileUpload"]["name"];
    copy($_FILES["fileUpload"]["tmp_name"],"MyResize/".$_FILES["fileUpload"]["name"]);
    $width=100; //*** Fix Width & Heigh (Autu caculate) ***//
    $size=GetimageSize($images);
    $height=100;
    $images_orig = ImageCreateFromJPEG($images);
    $photoX = ImagesX($images_orig);
    $photoY = ImagesY($images_orig);
    $images_fin = ImageCreateTrueColor($width, $height);
    ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
    ImageJPEG($images_fin,"MyResize/".$new_images);
    ImageDestroy($images_orig);
    ImageDestroy($images_fin);  }

?>

我的问题再次是:如何使这个脚本适用于所有扩展?

非常感谢,

4

2 回答 2

0

您的 PHP 脚本很可能使用 ImageMagick。

JPG、GIF、PNG 是不同的图像格式,存储不同类型的数据。

说明ImageCreateFromJPEG、ImageCreateTrueColorImageJPG仅适用于 JPG 格式,所以...开始在 ImageMagick 的文档中搜索 GIF 和 PNG。

于 2013-07-07T06:25:14.803 回答
0

您可能需要通过使用pathinfo()和使用ImageCreateFromJPEG, ImageCreateFromPNG, ImageCreateFromGIF, ImageJPEG,来获取文件的扩展名ImagePNGImageGIF因此:

<?
if(trim($_FILES["fileUpload"]["tmp_name"]) != "")
{
    $images = $_FILES["fileUpload"]["tmp_name"];
    $new_images = "Thumbnails_".$_FILES["fileUpload"]["name"];
    copy($_FILES["fileUpload"]["tmp_name"],"MyResize/".$_FILES["fileUpload"]["name"]);
    $width=100; //*** Fix Width & Heigh (Autu caculate) ***//
    $size=GetimageSize($images);
    $height=100;
    $ext = pathinfo($images, PATHINFO_EXTENSION);
    if($ext == "jpg")
    {
       $images_orig = ImageCreateFromJPEG($images);
    }
    elseif($ext == "png")
    {
       $images_orig = ImageCreateFromPNG($images);
    }
    elseif($ext == "gif")
    {
       $images_orig = ImageCreateFromGIF($images);
    }
    $photoX = ImagesX($images_orig);
    $photoY = ImagesY($images_orig);
    $images_fin = ImageCreateTrueColor($width, $height);
    ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
    if($ext == "jpg")
    {
       ImageJPEG($images_fin,"MyResize/".$new_images);
    }
    elseif($ext == "png")
    {
       ImagePNG($images_fin,"MyResize/".$new_images);
    }
    elseif($ext == "gif")
    {
       ImageGIF($images_fin,"MyResize/".$new_images);
    }

    ImageDestroy($images_orig);
    ImageDestroy($images_fin);  }
于 2013-07-07T06:32:25.840 回答