Ensemble de saisie de chargement PHP et comment find le nombre de files?

J'ai cette forme:

<form enctype="multipart/form-data" action="upload.php" method="POST"> <input type="file" name="photo[]" /> <input type="file" name="photo[]" /> </form> 

Et je télécharge les files avec php de cette façon:

 function upFiles($files){ for($i = 0 ; $i < $files ; $i++){ $FV_filename = $_FILES['photo']['name'][$i]; $fileTYPE = substr($FV_filename , -4); move_uploaded_file($_FILES['photo']['tmp_name'][$i], uniqid().$fileTYPE); } } upFiles($_POST['howManyFiles']); 

Comme vous pouvez le constater, je reçois du côté client combien de files ont été envoyés. Ce que je veux faire, c'est vérifier le côté du server combien de files ont été reçus. Comment puis je faire ça? Y a-t-il une fonction php embeddede, sinon comment créer un?

 count( $_FILES['photo']['name'] ); 

devrait marcher. Vous pouvez également réécrire votre boucle for a foreach :

 foreach ( $_FILES as $name => $file ) { var_dump( $file ); // process file... } 

Vous pouvez vérifier si le file a été téléchargé avec le file is_uploaded_file , de la manière suivante:

 function upFiles($files){ for($i = 0 ; $i < $files ; $i++){ if (is_uploaded_file($_FILES['photo']['tmp_name'][$i])) { // uploaded file } } } 

Vous pouvez utiliser foreach pour boucler toutes les photos téléchargées au lieu d'utiliser un numéro magique .

De: php.net

Iterate sur le tableau $ _FILES:

 function upFiles( $baseVarName ){ foreach( $_FILES[ $baseVarName ] as $fileDetails ) { $FV_filename = $fileDetails['name'][$i]; $fileTYPE = substr($FV_filename , -4); move_uploaded_file( $fileDetails['tmp_name'][$i], uniqid().$fileTYPE); } } upFiles( 'photo' );