2010-10-30 17 views
0

je télécharge l'image au serveur s3 et par php je fais une copie de cette image sur le serveur, si je télécharge une image de 2.3 mb que la largeur de l'image ne vient pas mais si je télécharge moins d'image de taille comme 26kb qu'elle montre la largeur de l'image ainsi elle est capable de créer la copie.pourquoi la largeur et la hauteur de l'image ne peut pas entrer dans php

ici est mon code de php:

$s3 = new S3(awsAccessKey, awsSecretKey); 

     $thumbId = uniqid(); 
     $thumbId .= ".jpg"; 
     $img = ''; 

     if($imgType == "image/jpeg"){ 
      $img = imagecreatefromjpeg($sourceUrl); 
     }else if($imgType == "image/png"){ 
      $img = imagecreatefrompng($sourceUrl); 
     }else if($imgType == "image/gif"){ 
      $img = imagecreatefromgif($sourceUrl); 
     }else{ 
      $img = imagejpeg($sourceUrl); 
     } 

    echo $width = imagesx($img); 
     echo $height = imagesy($img); 

s'il vous plaît me dire quel est le problème avec la taille de l'image ..

ce qui a trait

Rahul

+0

'que la largeur de l'image ne vient pas' votre script se bloque probablement en raison de problèmes de mémoire. Activer 'error_reporting (E_ALL);' pour en savoir à coup sûr –

+0

@Pekka aucun problème de mémoire j'ai essayé de signaler des erreurs – XMen

+0

@Rahul ce qui se passe exactement? Qu'obtenez-vous pour $ width et $ height? –

Répondre

2

Je peux me tromper, mais je suis à peu près sûr qu'il s'agit d'un problème de mémoire qui ne s'affiche pas car certains aspects du rapport d'erreurs sont désactivés.

Soit cela, ou l'image de 2,3 Mo est cassée ou dans un format que GD ne peut pas lire - assurez-vous de l'essayer avec diverses images.

S'il s'agit d'un problème de mémoire, voici une question connexe.

+0

j'ai essayé moins de 1024 kb qui wokring est bien et la limite de mémoire de php.ini est 160M - alors quel peut être le problème – XMen

+0

@Rahul quoi les dimensions physiques des fichiers d'image ont-ils? La taille du fichier n'est pas pertinente avec JPG, la largeur x hauteur est importante. De plus, vous ne dites toujours pas ce qui se passe exactement. Quelles valeurs obtenez-vous avec une grande image? –

+0

les valeurs vierges viennent avec de grandes images – XMen

1

Lire ce lien: PHP rebuilding images: memory usage

Comme riky dit, définissez la limite de mémoire supérieure si vous le pouvez. Notez également que les dimensions sont plus importantes que la taille du fichier (car la taille du fichier est pour une image compressée). Lorsque vous ouvrez une image dans GD, chaque pixel reçoit 3-4 octets qui lui sont alloués, RGB et éventuellement A. Ainsi, votre image 4912px x 3264px doit utiliser 48,098,304 à 64,131,072 octets de mémoire, plus les frais généraux et toute autre mémoire script utilise.