Envoie multiple fichier PHP

le code suivant permet l'envoie de plusieurs fichiers depuis un <input type="file"> d'un coup sur un serveur...

Le formulaire
form.html

<FORM ENCTYPE="multipart/form-data" ACTION="" METHOD="post" action="upload.php">
<b>Upload de fichier dans ce repertoire :</b><br>
Choisissez un fichier sur votre disque et cliquez sur Envoyer<br>
Fichier : <INPUT NAME="srcfichier[]" TYPE="file" size="20"><br>
Fichier : <INPUT NAME="srcfichier[]" TYPE="file" size="20"><br>
Fichier : <INPUT NAME="srcfichier[]" TYPE="file" size="20"><br>

<input type="submit" value="Envoyer"></FORM>

Le fichier d'upload

upload.php

<?php

// Si le form est parti
if(@$_FILES) {

$racine=".";

// Pour chaque input
for($i=0;$i<sizeof($_FILES["srcfichier"]["name"]);$i++) {

// Si l'input est vide, on passe
if(!$_FILES["srcfichier"]["name"][$i]) continue;

$name = $_FILES["srcfichier"]["name"][$i];
$ext = substr($name, strrpos($name, ".") + 1);
$nom_fichier=basename($name,".".$ext);

// Pour éviter d'écraser l'ancien en cas de doublon
$n="";
while(file_exists("$racine/$nom_fichier$n.$ext")) $n++;
$nom_fichier="$nom_fichier$n.$ext";

// Fin de l'upload
if (@move_uploaded_file($_FILES["srcfichier"]["tmp_name"][$i], "$racine/$nom_fichier")){
@chmod("$racine/$nom_fichier", 0777);
echo "Fichier <a href="$racine/$nom_fichier" target=_blank><i>$nom_fichier</i></a>
envoyé avec succčs ! (".$_FILES["srcfichier"]["size"][$i]." octets)<br> ";
} else {
echo "Erreur, impossible d'envoyer le fichier <i>$nom_fichier</i><br> ";
}

}
}

?>

Attention, il est important de concerver dans form.html les

Fichier : <INPUT NAME="srcfichier[]" TYPE="file" size="20"><br>
Fichier : <INPUT NAME="srcfichier[]" TYPE="file" size="20"><br>
Fichier : <INPUT NAME="srcfichier[]" TYPE="file" size="20"><br>


Publié le 25 Septembre 2006 par luca | Ecouter l'article

Publié dans : Programmation

Accueil Précédent Suivant