【问题标题】:uploaded image convert to small image with php上传的图片用php转换成小图片
【发布时间】:2017-11-29 18:52:27
【问题描述】:

您好,我有一个关于 php 的问题。在我的 php 文件中,我有 1 部分用于图像上传。 它还翻译和上传我上传的同样小尺寸的图像。但是在为 .jpg 扩展名工作时,减少不适用于 .png 扩展名。

$uploaddir = "storage/products/screenshot/"; //Screenshot upload directory

$valid_formats = array("jpg","jpeg","png"); // Valid image formats

$countScreen = 0;
foreach ($_FILES['item_screen']['name'] as $name => $value) {
    $filename = stripslashes($_FILES['item_screen']['name'][$name]);

    $size = filesize($_FILES['item_screen']['tmp_name'][$name]);
    //Convert extension into a lower case format
    $ext = getExtension($filename);
    $ext = strtolower($ext);
    //File extension check
    if (in_array($ext, $valid_formats)) {

        if($ext=="jpg" || $ext=="jpeg" )
        {
            $uploadedfile = $_FILES['item_screen']['tmp_name'][$name];
            $src = @imagecreatefromjpeg($uploadedfile);
        }
        else if($ext=="png")
        {
            $uploadedfile = $_FILES['item_screen']['tmp_name'];
            $src = @imagecreatefrompng($uploadedfile);
        }
        else
        {
            $src = @imagecreatefromgif($uploadedfile);
        }


        list($width,$height)=getimagesize($uploadedfile);

        $newwidth=800;
        $newheight=($height/$width)*$newwidth;
        $tmp=imagecreatetruecolor($newwidth,$newheight);

        $newwidth1=222;
        $newheight1=($height/$width)*$newwidth1;
        $tmp1=imagecreatetruecolor($newwidth1,$newheight1);

        @imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
        @imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);

        $random1 = rand(9999, 100000);
        $random2 = rand(9999, 200000);
        $image_name =  $first_title . '_' . $random1 . $random2 . '.' . $ext;
        $image_name1 = 'small_' .$first_title . '_' . $random1 . $random2 . '.' . $ext;

        //$newname = $uploaddir . $image_name;

        $filename = $uploaddir . $image_name;
        $filename1 = $uploaddir . $image_name1;
        $pic_name = $image_name1;

        @imagejpeg($tmp,$filename,100);
        @imagejpeg($tmp1,$filename1,100);

        @imagedestroy($src);
        @imagedestroy($tmp);
        @imagedestroy($tmp1);

        //Moving file to uploads folder
        if (!move_uploaded_file($_FILES['item_screen']['tmp_name'][$name], $filename)) {
            $errors[]['message'] = $lang['ERROR_UPLOAD_IMG'];
        }
        if ($countScreen == 0)
            $image_name2 = $image_name;
        elseif ($countScreen >= 1)
            $image_name2 = $image_name2 . "," . $image_name;

    } else {
        $errors[]['message'] = $lang['ONLY_JPG_ALLOW'];
    }
    $countScreen++;
}

Github 要点:https://gist.github.com/barangndz/e911ec01494bcfc594145c9edf3611d6

【问题讨论】:

标签: php image


【解决方案1】:

我觉得你需要试试这个方法:

if($ext=="jpg" || $ext=="jpeg" || $ext=="png" )
{
    $uploadedfile = $_FILES['item_screen']['tmp_name'][$name];
    $src = @imagecreatefromjpeg($uploadedfile);
}
else
{
    $src = @imagecreatefromgif($uploadedfile);
}

【讨论】:

  • 这是工作谢谢。除了删除它之外,我尝试了这种方法: else if($ext=="png") { $uploadedfile = $_FILES['item_screen']['tmp_name']; $src = @imagecreatefrompng($uploadedfile); }
  • 欢迎您,如果您觉得不错,请给我投票并关注我的网站:datainflow.com/programming
猜你喜欢
  • 2018-10-27
  • 2013-03-03
  • 2011-08-26
  • 1970-01-01
  • 2012-08-01
  • 2012-08-15
  • 2014-11-07
相关资源
最近更新 更多