2010-10-06 10 views
-2

Voici le code que j'ai fait, je m'attendais à ce qu'il fonctionne mais quelque part il doit y avoir une erreur. Je ne peux pas comprendre moi-même, S'il vous plaît aider.Quelque chose ne va pas avec mon code? Fichier Upload Multiple PHP

<?php 

if(isset($_POST['submit'])){ 

    $max_size = 500000; 
    $image_upload_path = "images/products/"; 
    $allowed_image_extension = array('jpg','jpeg','png','gif'); 


    for($i=0;$i<2;$i++) 
    { 
     //check if there is file 
     if((!empty($_FILES['image[]'][$i])) && ($_FILES['image[]']['error'][$i]==0)) 
     { 
      //check extension 
      $extension = strrchr($_FILES['image']['name'][$i], '.'); 
      if(in_array($extension,$allowed_image_extension)) 
      { 
       //check file size. 
       if($_FILES['image']['size'][$i] > $max_size) 
       { 
        echo "file too big"; 
       } 
       else if($_FILES['image']['size'][$i] < 1) 
       { 
        echo "file empty"; 
       } 
       else 
       { 
        //we have pass file empty check,file extension check,file size check. 
        $the_uploaded_image = $_FILES['image']['tmp_name'][$i]; 
        $the_uploaded_image_name = $_FILES['image']['name'][$i]; 

        //replace empty space in filename with an underscore '_' 
        $the_uploaded_image_name = preg_replace('/\s/','_',$the_uploaded_image_name); 

        //get the file extension 
        $the_uploaded_image_extension = explode(',',$the_uploaded_image_name); 
        $the_new_image_name = $the_uploaded_image_name."".md5(uniqid(rand(),true))."".$the_uploaded_image_extension; 

        $save_image_as = $the_new_image_name; 
        //check file exist 
        if(file_exists($image_upload_path."".$the_new_image_name)) 
        { 
         echo "file".$image_upload_path."".$the_new_image_name." already exist"; 
        } 
        else 
        { 
         if(move_uploaded_file($the_uploaded_image,$save_image_as)) 
         { 
          echo "image".$the_uploaded_image_name." uploaded sucessfully"; 
          //set the image path to save in database column 
         } 
         else 
         { 
          echo "there was an error uploading your image."; 
         } 
        } 
       } 
      } 
      else 
      { 
      echo "extension not allowed"; 
      } 
     } 
     else 
     { 
      echo "please choose file to upload"; 
     } 
    } 


} 

?> 

<html> 
<head><title>image upload</title></head> 
<body> 
<form action="" method="POST" enctype="multipart/form-data"> 
    <input type="file" name="image[]"/> 
    <input type="file" name="image[]"/> 
    <input type="submit" value="submit"/> 
</form> 
</body> 
</html> 

Ceci est mon nouveau code PHP. Im obtenant à la fois le résultat trouvé introuvable non trouvé. Quelqu'un va me dire ce que je fais mal ici. La condition if else semble ne pas fonctionner car les deux conditions donnent des résultats. Pourquoi?

<?php 
if(isset($_POST["submit"])) { 
    echo $_POST["submit"]; 
    echo "<br/>"; 
    for($i=0;$i<count($_FILES['image'])-1;$i++) 
    { 
     if(!empty($_FILES['image']['tmp_name'][$i])) 
     { 
      echo "found";  
      echo "<br/>"; 
     } 
     else 
     { 
      echo "not found"; 
      echo "<br/>"; 
     } 
    } 

} 
else 
{ 
    echo "form is not posted"; 
} 

?>

+0

Pouvez-vous nous donner une * indication * de ce qui se passe ou ne se passe pas? – deceze

+1

Qu'est-ce que @deceze dit. Veuillez ajouter une question à votre question et décrire ce qui ne fonctionne pas. –

Répondre

3

Je suppose que la WTF évidente serait $_FILES['image[]'][$i], ce qui devrait être juste $_FILES['image'][$i] (le [] au nom en fait un tableau, il ne fait pas partie du nom).

Je ne suis pas disposé à résoudre tout problème au-delà de cela pour vous sans plus d'informations. Essayez ceci à différents points dans le code:

echo '<pre>'; 
var_dump($_POST); // or other variables 
echo '</pre>'; 

Cela devrait vous aider à déboguer votre propre code, quelque chose que vous devez apprendre à faire.

+0

Je reçois toujours l'écran vide, sans aucune erreur, ni l'image des fichiers d'entrée sont téléchargés. –

+2

@Roger active alors le rapport d'erreur et affiche le script '$ _FILES'. –

+1

Aussi @Roger est vraiment un cas pour le débogage de base, quelque chose que personne ici ne peut (ou fera) pour vous. D'abord, vous activez le rapport d'erreurs. Ensuite, vous vérifiez si '$ _POST [" submit "]' est défini, par exemple. en faisant une sortie de test 'echo" submit est mis! ";'. Ensuite, vous testez si les conditions de la ligne 13 sont réellement remplies, par ex. en faisant une autre sortie de test. Ainsi de suite. Tout le monde bien informé ici a dû passer par cela - c'est la façon dont nous apprenons tous –