IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] upload multiple de fichiers différents


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Upload] upload multiple de fichiers différents
    Bonjour à tous,

    Je suis un novice en matière de language de programation et s'il vous plait, soyez indulgent... Voici donc ma requête :
    Je travail sur une site sur lequel je voudrais pouvoir recueillir de la part d'un visiteur une photo (fichier image), un CV (fichier texte), une démo audio (fichier audio).
    J'ai donc chercher sur internet des tutos sur l'upload multiple.
    J'ai créer un formulaire html qui me renvoie à un fichier php dont le contenu sera indiqué plus bas. Tout fonctionne bien mais je n'arrive pas à écrire le script permettant d'envoyer 3 fichier en même temps en contrôlant leur taille et leur format.
    Si quelqu'un peut m'aider, ça serait sympa... Merci d'avance.

    Formulaire HTML :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form method="POST" action="upload.php" enctype="multipart/form-data">
    <p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
    <p><label for="cv">CV :</label>
     <input type="file" name="cv" />
    </p>
    <p><label for="Demo">Demo mp3 :</label><input type="file" name="demo" /></p>
    <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
    </legend>
    </fieldset>
    </form>

    Script du fichier uplaod.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
     $target = "upload/";  // Repertoire cible
     $max_size = 100000000000;  // Taille max en octets du fichier
     $width_max = 3000;  // Largeur max de l'image en pixels
     $height_max = 3000; // Hauteur max de l'image en pixels
     $extensions_ok = array(".jpg",".gif",".png",".jpeg");
     $noname = date('dmYhmi');
     //------------------------------------------------------------
     // DEFINITION DES VARIABLES LIEES AU FICHIER
     //------------------------------------------------------------
     $nom_file = $_FILES['photo']['name'];
     $taille = $_FILES['photo']['size'];
     $tmp = $_FILES['photo']['tmp_name'];
     $chemin = $target.$_FILES['photo']['name'];
     $extension = substr(strrchr($nom_file, "."), 0); // Récupération de l'extension
     //---------------------------
     // SCRIPT D'UPLOAD
     //---------------------------
    		// On vérifie si le champ est rempli
    		if($_FILES['photo']['name']){
    				// On vérifie l'extension du fichier
    				echo'<br /><div class="title">Traitement de l\'envoie</div>
    				<div class="bot">';
    				echo "Votre photo est du type : <strong>".$extension."</strong><br />";
    				if(in_array(strtolower($extension),$extensions_ok)){
    				// On récupère les dimensions du fichier
    				$infos_img = getimagesize($_FILES['photo']['tmp_name']);
    				// On vérifie les dimensions et taille de l'image
    //						if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($taille <= $max_size)){
    						// Si c'est OK, on teste l'upload
    								if(move_uploaded_file($tmp,$chemin)){
    								$ancien = "".$target.$_FILES['photo']['name']."" ;
    								$new = "".$noname.".jpg";
    								@unlink($new);
    								rename($ancien, $new);
    								echo "Les dimmentions sont de : <strong>".$infos_img[0]."x".$infos_img[1]."</strong><br />";
    								echo "Le fichier a bien été envoyé et s'appele desormais : ".$new."<br />";
    								echo"</div>";	  
    								?>
    				<SCRIPT LANGUAGE="JavaScript">
    				document.location.href="succesupload.html" </SCRIPT>
    				<?php
    								}else{
    								// Sinon on affiche une erreur système
    								$new = 0 ;
    								echo '<b>Problème lors de l\'upload !</b><br>';
    								}
    			//			}else {
    						// Sinon erreur sur les dimensions et taille de l'image
     
    				//		$new = 0 ;
    				//		echo '<b>Erreur dans les dimensions ou taille de l\'image !</b><br>';
    				//		}
    				}else {
    				// Sinon on affiche une erreur pour l'extension
    				$new = 0 ;
    				echo '<b>Votre image ne comporte pas une extension valide !</b><br>';
    				?>
    				<SCRIPT LANGUAGE="JavaScript">
    				document.location.href="echecupload.html" </SCRIPT>
    				<?php
    				}
    		}else{
    		$new = 0;
    		}
     
    	$photo = quote_smart(strtolower($new)); 
     
    		$reqa = "UPDATE $table19 SET ".$ltr[1]." = '1'  WHERE id_membre = '".$id."'";
    		$resa = mysql_query($reqa) or die(mysql_error());
     
    		echo'<div class="bot"><strong>Votre photo a bien été envoyée ( lettre '.$ltr[1].') </strong></div>';
    //?>
    //<script language="JavaScript">
    //setTimeout("window.location='index.php?page=upload_album'",5000);
    //</script>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    a priori c'est normal car ton code ne gere l'upload que de l'image seulement et pas des deux autres fichiers.

    Il faut rajouter les traitement des upload pour les autres fichiers, en remplacant $_FILES[photo] par $_FILES[cv] et $_FILES[demo].

    Sinon tu peux créer une boucle qui va traiter tous les upload dans une seule boucle.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci de ta réponse.
    En effet, le script ne contient upload pour les autres fichiers, mais j'ai essayé et je n'arrive pas à trouver la forme que doit avoir le script sans erreur.
    Voilà ce que je voudrais :

    Après la saisie des fichiers photo/cv/demo, le script vérifie uniquement la taille et le format du fichier. Ensuite, on peut effectuer l'envoi.
    Mes questions sont multiples, doit-on traiter l'upload séparément avec des lignes d'upload après chaque vérifications ou bien faire les vérifications puis ensuite traiter les lignes d'upload...
    La forme me fait défaut.
    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] download multiple de fichier
    Par cocale dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2008, 19h18
  2. [Upload] Upload d'un gros fichier + barre de progression
    Par Night_owl dans le forum Langage
    Réponses: 4
    Dernier message: 27/03/2008, 15h14
  3. [Upload] Upload de beaucoup de fichier sur 1&1
    Par stilobique dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2007, 13h01
  4. [Upload] upload fichiers avec multiple submit
    Par dolf13 dans le forum Langage
    Réponses: 17
    Dernier message: 06/06/2006, 01h20
  5. Réponses: 3
    Dernier message: 20/04/2006, 23h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo