2013-09-16 5 views
5

Я уже проверил файл с типом mime. Если это JPG или GIF он прекрасно работает сimagecreatefrompng вообще не работает

$src = imagecreatefromjpeg($tmpName); 

и

$src = imagecreatefromgif($tmpName); 

, но если изображение PNG $src = imagecreatefrompng($tmpName);

src переменная пуста в Png случае, но в JPG и GIF он показывает это resource id.

Кто-нибудь скажет мне, что мне нужно сделать?

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
    $mime = finfo_file($finfo, $_FILES['photo']['tmp_name']); 
    unset($_FILES["photo"]["type"]); 
    $_FILES["photo"]["type"] = $mime; 

    if ((($_FILES["photo"]["type"] == "image/gif") || ($_FILES["photo"]["type"] == "image/jpeg") || ($_FILES["photo"]["type"] == "image/jpg") || ($_FILES["photo"]["type"] == "image/pjpeg") || ($_FILES["photo"]["type"] == "image/x-png") || ($_FILES["photo"]["type"] == "image/png")) && in_array($extension, $allowedExts)) { 

     if ($_FILES["photo"]["error"] > 0) { 
      echo "Error uploading file <a href='step-1.php'> Try again. </a>"; 
      $image_check = 0; 
      exit; 
     } else { 

      $image_check = 1; 
      $fileName = $_FILES['photo']['name']; 
      $tmpName = $_FILES['photo']['tmp_name']; 
      $fileSize = $_FILES['photo']['size']; 
      $fileType = $_FILES['photo']['type']; 
      list($width1, $height1, $typeb, $attr) = getimagesize($tmpName); 

      //$filePath = $uploadDir . $fileName; 

      $size = filesize($_FILES['photo']['tmp_name']); 

      $ext = $_FILES["photo"]["type"]; 

      if ($ext == 'image/jpeg' || $ext == 'image/jpg') { 
      $src = imagecreatefromjpeg($tmpName); 
     } else if ($ext == 'image/gif') { 
      $src = imagecreatefromgif($tmpName); 
     } 
      else if(($ext=='image/png')||($ext=='image/x-png')) 
     { 
      $src = imagecreatefrompng($tmpName); 
      } 
     $newwidth1 = 624; 


     $newheight1 = ($height1 * $newwidth1)/($width1); 
     $tmp = imagecreatetruecolor($newwidth1, $newheight1); 

     imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth1, $newheight1, $width1, $height1); 
     $filename = "resources/images/" . $append . $_FILES['photo']['name']; 

     if ($ext == 'image/jpeg' || $ext == 'image/jpg') { 
      imagejpeg($tmp, $filename, 90); 
     } else if ($ext == 'image/gif') { 
      imagegif($tmp, $filename, 90); 
     } 
     else if(($ext=='image/png')||($ext=='image/x-png')) 
     { 

      imagepng($tmp, $filename, 90); 
     } 
+0

может у вставить фрагмент кода ?? –

+0

В целом эта функция работает нормально. Нам нужно что-то еще, чтобы помочь вам в вашем конкретном случае. – deceze

+0

Вы указали заголовок для изображения типа PNG? –

ответ

6

Написать файл

<?php 
    phpinfo(); 
?> 

Browse, вы увидите JPG Support и GIF create Support являются enabled но PNG Supportdisabled это.

Включить PNG Support, он будет работать.

enter image description here

+0

my gif create support и поддержка jpg уже включена – user2679683

+0

Ответ отредактирован, вам нужно включить поддержку PNG, возможно, – Salim

+0

Также включен – user2679683

2

Изменение от

imagepng($tmp, $filename, 90); 

в

imagepng($tmp, $filename); 
Смежные вопросы