begin process at 2012 05 27 20:46:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > UPLOAD DE PLUSIEURS FICHIERS

UPLOAD DE PLUSIEURS FICHIERS


 Information sur la source

Note :
8,8 / 10 - par 5 personnes
8,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Niveau :Débutant Date de création :18/02/2003 Date de mise à jour :18/02/2003 16:39:06 Vu :19 230

Auteur : ronanry

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

ce petit script va vous permettre d'uploader plusieurs fichiers d'un coup

Source

  • //dans index.php
  • <body>
  • <form action=finftp.php method=post name=form_edit enctype="multipart/form-data">
  • <?php
  • $a=10;
  • for ($i=0;$i<=$a;$i++)
  • echo "<input type=file name=file[$i] enctype=\"multipart/form-data\" size=40><br>";
  • ?>
  • <input type=submit>
  • </form>
  • //dans finftp.php
  • <?php
  • $ftp="ftp.adresse.com";
  • $ftpuser="user";
  • $ftppass="pass";
  • $a=0;
  • $ftpc=ftp_connect($ftp);
  • $result_login=@ftp_login($ftpc, $ftpuser, $ftppass);
  • phpinfo();
  • if ((!$result_login) || (!$ftpc))
  • {
  • die("impossible de se connecter");
  • }
  • else
  • {
  • while($a<sizeof($HTTP_POST_FILES["file"]["name"]))
  • {
  • if (!(copy($HTTP_POST_FILES["file"]["tmp_name"][$a],"./temp/".$HTTP_POST_FILES["file"]["name"][$a])))
  • die ("echec de la copie de ./temp/".$HTTP_POST_FILES["file"]["name"][$a]." en local");
  • else
  • echo "copy de ./temp/".$HTTP_POST_FILES["file"]["name"][$a]." réussie<br>";
  • $local_file= "./temp/".$HTTP_POST_FILES["file"]["name"][$a];
  • $remote_file= "html/upload/".$HTTP_POST_FILES["file"]["name"][$a];
  • $put= @ftp_put($ftpc, $remote_file, $local_file, FTP_BINARY);
  • if (!$put)
  • {
  • die("upload de $local_file a echoue \n<br>");
  • }
  • else
  • {
  • echo "upload de $local_file reussi \n<br>";
  • }
  • $a++;
  • if (!(@unlink($local_file)))
  • echo("erreur lors de la suppression");
  • }
  • }
  • ?>
//dans index.php
<body>
<form action=finftp.php method=post name=form_edit enctype="multipart/form-data">
<?php
$a=10;
for ($i=0;$i<=$a;$i++)
echo "<input type=file name=file[$i] enctype=\"multipart/form-data\" size=40><br>";
?>
<input type=submit>
</form>

//dans finftp.php
<?php
$ftp="ftp.adresse.com";
$ftpuser="user";
$ftppass="pass";
$a=0;
$ftpc=ftp_connect($ftp); 
$result_login=@ftp_login($ftpc, $ftpuser, $ftppass); 
phpinfo();
if ((!$result_login) || (!$ftpc))
{ 
	die("impossible de se connecter");
}
else
{
	while($a<sizeof($HTTP_POST_FILES["file"]["name"]))
	{
		if (!(copy($HTTP_POST_FILES["file"]["tmp_name"][$a],"./temp/".$HTTP_POST_FILES["file"]["name"][$a])))
			die ("echec de la copie de ./temp/".$HTTP_POST_FILES["file"]["name"][$a]." en local");
		else
			echo "copy de ./temp/".$HTTP_POST_FILES["file"]["name"][$a]." réussie<br>";
		$local_file= "./temp/".$HTTP_POST_FILES["file"]["name"][$a];
		$remote_file= "html/upload/".$HTTP_POST_FILES["file"]["name"][$a];
		$put= @ftp_put($ftpc, $remote_file, $local_file, FTP_BINARY); 
		if (!$put)
		{ 
			die("upload de $local_file a echoue \n<br>"); 
		} 
		else
		{ 
			echo "upload de $local_file reussi \n<br>"; 
		} 
		$a++;
		if (!(@unlink($local_file)))
			echo("erreur lors de la suppression");
	}
}
?>

 Conclusion

c t pas trop dur mais encore fallait il y penser...et comme j'ai pas vu ce code sur ce site.....je le post :)

/!\ WARNIIINNGGG!!!!

si vous etes sous Linux attention a bien changer les proprietes du dossier "./temp/" a 777 (chmod 777 temp)   :)


 Sources du même auteur

CLASSE POUR ACCES A UNE BDD MYSQL
ENVOYER DES DONNÉES A FLASH
Source avec Zip Source avec une capture MODIFIER UN FICHIER PNG POUR ECRIRE DESSUS
TABLEAU BICOLORE
AFFICHER LES ZEROS APRES LA VIRGULES

 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

Commentaires et avis

Commentaire de MangaII le 19/02/2003 10:21:19

Question a 10 balle : pourkoi tu passe par du FTP ?????
kel interet ? le système de copy en php du contenu du formulaire ne suffit pas ?

Commentaire de iubito le 19/02/2003 18:49:27

g pas testé, mais est-ce qu'avec le ftp on a une limite ?
parce que sur free on peut pas uploader plus de X ko, en ftp, c limité ou pas ?

Commentaire de ronanry le 19/02/2003 19:37:38

Reponse a MangaII

Commentaire de ronanry le 19/02/2003 19:38:50

Reponse a MangaII
  En fait c pour pouvoir ensuite envoyer ton fichier sur un ftp distant....du style..tu heberge tes pages webs sur un site et tes fichiers a dl sur un autre...c tout l'avantage....
Reponse a Iubito....
     bah en fait....j'en sais rien ;-)

Commentaire de eryver le 29/03/2004 14:49:10

ben la reponse est oui. Meme avec des comandes ftp, le script reste soumis a la limitation car il utilise un formulaire.

Perso je doit creer un systeme d'upload sans limite de poids de fichier et pour le moment ben je rame a touver. Si quelqu'un sait comment on fait je suis preneur.

Il doit bien y avoir une solution puisque les clientFTP eux , y arrivent.

Commentaire de ronanry le 31/03/2004 21:33:29

Erreur eryver...les clients FTP y arrive SI et SEULEMENT SI (vive les maths :)) tu as la possibilité sur le serveur
pour la simple et bonne raison que si on ne t'y autorise pas....et bien que ce soit en passant par la droite ou en passsant par la gauche et bien tu n'y arrive pas....donc moi je suis TRES sceptique et je doute fort que tu trouve qqch....m'enfin si tu trouve....je suis preneur :)

Commentaire de panpan le 26/06/2004 00:33:24

Hello, une petite question, si au passage je voulais renomer les fichiers uploadés ( en utilisant rename() je pense je devrais m'y prendre comment?

Et je voulais aussi savoir si il est possible de faire en sorte que les utilisateurs ne puisse uploader que des images .jpg par exemple?

Merci d'avance

Panpan

Commentaire de ronanry le 27/06/2004 22:46:26

petite reponse :$remote_file="lenomquetuveux";
et pour uploader seulement des jpeg 2 choix : soit tu verifie l'extension "jpg ou jpeg" soit tu verifie direct le fichier mais alors la je sais plus trop comment on fait

Commentaire de PasQ le 22/12/2004 19:20:23

Juste
if ($theimage_type != "image/jpeg"){etc...}

Non ?

Commentaire de dominion le 01/06/2005 23:58:06

if ($theimage_type != "image/jpeg"){etc...}

Oui mais en attendant il faut avoir le type de l'image : tu met une variable...

En fait, il faut faire mime_content_type($file); et là tu auras "image/jpeg"...

Un autre truc : ronanry, pourquoi tu mets $i <= $a... C'est ridicule : a ne vaut plus le nombre de fichiers que tu veux envoyer... Fait plutot $i <= $a.

Commentaire de ronanry le 26/06/2005 01:22:54

reponse a dominion

tu m'explique la difference entre $i <= $a et $i <= $a
:D j'pense juste que tu t'es planter sur ce que tu voulais mettre
bref la n'etait pas la question

si tu regarde le programme, $a ne me sert que de valeur tampon
au début (dans le for) ca permet simplement de mettre 10 chp texte pour envoyer
ca permet d'en mettre 22 sans se prendre la tete (par  exemple)

et dans la suite du prog, tjs tampon, il me sert simplement a savoir ou j'en suis dans le tableau des fichiers envoyés

donc si tu peux un peu expliquer ton $i<=$a, je pense que je comprendrais un peu plus :-p

Commentaire de Shibo_Sources le 05/07/2005 17:30:17

Il est pas mal ton script. Et très utile. Perso je fait un genre de mini client ftp en php avec possibilité d'upload en php et ftp (au cas ou un des deux marche pas).

Je suis loin d'être un expert en php mais je me debrouille tant bien que mal. Pourtant j'ai un soucis avec ton script. Voici mon pb:
Si je comprend bien comment sa marche les $_POST et autres (c tout neuf pour moi) sa fait passer un array depuis le form jusqu'a l'upload (si c'est faux arretez moi).

Donc ... J'utilise un switch dans mon index pour n'avoir qu'une seul page php. Je crée donc des functions qui sont appelées en temps voulu. L'action de mon form n'appel pas un fichier mais donc une function (index.php?file=xxx&switch=do_upload ar ex). Le pb c'est que l'array ne passe pas. J'ai donc mis $_POST dans mon switch et $data dans ma function pour recupérer l'array qui sera nomer $data. Evidement, sa marche pas: l'array $data est vide ...

J'ai donc essayer de virrer $_POST et $data de mon switch/function pour appeler l'array via $HTTP_POST_FILE. Normalement sa devrait aller, je comprend po trop ou sa cloche.

Un ptit coup de main serais pas de refus :)

Commentaire de ronanry le 07/12/2005 18:04:11

en fait shibo source c'est tout con (désolé du délai de reponse mais bon.....)

l'action de ton form pass par une methode GET (d'ou le ?file=xxx...derriere le nom de ton fichier)
alors que mon script utilise la methode POST
d'où un pb de conflit...
si tu dis a ton script "bon tu es pret je te parle en anglais?" et que tu lui parle en allemand...il va avoir qques pepins...bah la c pareil:D

si tu veux que ca fonctionne met ca dans ta page <form action"index.php" method=post>
par defaut tu peux avoir seulement <form action"index.php"> (ce qui met get par defaut..)


(attention aussi a verifier le nom de tes variables ensuite dans ton switch
ne les passant plus en get mais en post ca risque de provoquer qqques changement suivants ton hebergeur (et le php utilisé))

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales