1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| <?php
$ftp['maxf'] = 3; // Nombre de champs de téléchargement
$ftp['maxs'] = 10*1024*1024*10; // Taille maximale des fichiers (ex: 100Mo)
$ftp['user'] = 'USER'; // Nom du compte ftp & Login
$ftp['pass'] = 'PASS'; // Mot de passe d'accès au compte
$ftp['host'] = 'FTP'; // Adresse du serveur ftp
$ftp['dest'] = 'Ftp'; // Dossier de destination sur le serveur
$ftp['mode'] = FTP_BINARY; // Mode de transmission : FTP_BINARY ou FTP_ASCII
set_time_limit(0);
//===============================================================================
if(isset($_POST['valider'])){
// Test du nombre de fichiers postés //
$nbr=0;
for($x=0;$x<$ftp['maxf'];$x++)
if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
if($nbr<=0) die("Aucun fichier spécifié !<br/>");
// Connexion au server ftp
$handle=@ftp_connect($ftp['host'],21,90);
if($handle) {
$res=@ftp_login($handle,$ftp['user'],$ftp['pass']);
if($res) {
@ftp_pasv($handle,true);
// Création du dossier de destination //
if(!empty($ftp['dest'])) {
if(substr($ftp['dest'],strlen($ftp['dest'])-1,1)=='/') $ftp['dest'].='/';
$dir=explode('/',$ftp['dest']);
$ftp['dest']='';
for($x=0;$x<count($dir);$x++) {
$ftp['dest'].=$dir[$x].'/';
$erg=@ftp_chdir($handle,$dir[$x]);
if(!$erg){
@ftp_mkdir($handle,$dir[$x]);
$erg=@ftp_chdir($handle,$dir[$x]);
if(!$erg) die("Dossier \"".$ftp['dest']."\" introuvable !<br/>");
}
}
}
} else die("Login invalide !<br/>");
} else die("Connexion vers host échouée ! <br/>");
// Téléchargement des fichiers //
for($x=1;$x<=$ftp['maxf'];$x++) {
$errorhttp=@$_FILES['userfile']['error'][($x-1)];
$filenamehttp=@$_FILES['userfile']['name'][($x-1)];
$typehttp=@$_FILES['userfile']['type'][($x-1)];
$sizehttp=@$_FILES['userfile']['size'][($x-1)];
$tmpfilehttp=@$_FILES['userfile']['tmp_name'][($x-1)];
if (($errorhttp>0)&&(!empty($filenamehttp))) {
switch ($errorhttp){
case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
}
} else {
if((!empty($filenamehttp))&&($sizehttp>0)) {
if($sizehttp<=$ftp['maxs']){
if(@is_uploaded_file($tmpfilehttp)) {
if(function_exists('ftp_nb_put')){
$res=@ftp_nb_put($handle,$filenamehttp,$tmpfilehttp,$ftp['mode']);
while($res==FTP_MOREDATA) $res=@ftp_nb_continue($handle);
} else $res=@ftp_put($handle,$filenamehttp,$tmpfilehttp,$ftp['mode']);
if($res) {
if(function_exists('ftp_chmod'))
@ftp_chmod($handle,0777,$filenamehttp);
if(ftp_size($handle,$filenamehttp)==$sizehttp) {
echo "Fichier n°$x uploadé : ".basename($filenamehttp).
" (".round(max($sizehttp,1024)/1024)." ko)<br/>";
} else echo "Erreur : fichier n°$x introuvable sur le serveur !<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
} // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
}
}
@ftp_close($handle);
die("Opération terminée.<br/>");
}
//===============================================================================
echo '<form method="post" enctype="multipart/form-data"'.
' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
'<input type="hidden" name="MAX_FILE_SIZE" value="'.$ftp['maxs'].'"/>';
for($x=1;$x<=max($ftp['maxf'],1);$x++)
echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20" multiple/><br/>';
echo '<br/><input type="submit" name="valider" value="Envoyer..."/></form>';
//===============================================================================
?> |