+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 19
    Points : 0
    Points
    0

    Par défaut Problème upload photo

    Je souhaiterais urploader une photo dans "id/pics/nouvel ans/
    Mais cela ne marche pas.Mais si le dossier ne contient pas d'espace comme id/pics/google ça mache!! Aidez moi svp

    Code PHP :
    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    <?php include "config.php";?>
    <header>
    <link rel="stylesheet" href="style.css" />
    </header>
    <up><form name="upload" enctype="multipart/form-data" method="post" action="upload.php">
      <input type="file" name="file">
      <br><br>
      Choisir le dossier de destination :<br>
      <select name="folder">
      <?php
      $query = $bdd->query("SELECT * FROM album WHERE user ='".$_SESSION['pseudo']."'");
    $c = $query->fetch();
     
    while( $c = $query->fetch()){
    $r=$c['url'];
     
    $a=$c['name'];
    $b=ereg_replace(' ','%',$a);
    $requette = $bdd->query("SELECT * FROM dossier WHERE user ='".$_SESSION['pseudo']."'");
    $d = $requette->fetch();
    $idd=$d['id'];
    ?>
     
        <option name="folder"value="<?php echo $idd;?>/pics/<?php echo $b;?>/"><?php echo $a;?></option>
    	<?php }?>
      </select>
      <br><br>
      <input type="submit" name="submit" value="Envoyer le fichier">
    </form>
    <br>
    <br>
    </body>
    </html>
    <?php
    if(isset($_POST['submit'])){
     
    $DESTINATION_FOLDER = $_POST["folder"];							//
    // Taille maximale de fichier, valeur en bytes					//
    $MAX_SIZE = 5000000;											//
    // Récupération de l'url de retour								//
    $RETURN_LINK = $_SERVER['HTTP_REFERER'];						//
    // Définition des extensions de fichier autorisées (avec le ".")//
    $AUTH_EXT = array(".docx", ".pdf", ".jpg", ".ppt", ".JPG",		//
    	".bmp", ".gif");											//
    // ############################################################ //
     
    // Fonction permettant de créer un lien de retour automatique
     
    function createReturnLink(){
    	global $RETURN_LINK;
    	echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
    }
     
    // Fonction permettant de vérifier si l'extension du fichier est
    // autorisée.
     
    function isExtAuthorized($ext){
    	global $AUTH_EXT;
    	if(in_array($ext, $AUTH_EXT)){
    		return true;
    	}else{
    		return false;
    	}
    }
     
    // On vérifie que le champs contenant le chemin du fichier soit
    // bien rempli.
     
    if(!empty($_FILES["file"]["name"])){
     
    	// Nom du fichier choisi:
    	$nomFichier = $_FILES["file"]["name"] ;
    	// Nom temporaire sur le serveur:
    	$nomTemporaire = $_FILES["file"]["tmp_name"] ;
    	// Type du fichier choisi:
    	$typeFichier = $_FILES["file"]["type"] ;
    	// Poids en octets du fichier choisit:
    	$poidsFichier = $_FILES["file"]["size"] ;
    	// Code de l'erreur si jamais il y en a une:
    	$codeErreur = $_FILES["file"]["error"] ;
    	// Extension du fichier
    	$extension = strrchr($nomFichier, ".");
     
    	// Si le poids du fichier est de 0 bytes, le fichier est
    	// invalide (ou le chemin incorrect) => message d'erreur
    	// sinon, le script continue.
    	if($poidsFichier <> 0){
    		// Si la taille du fichier est supérieure à la taille
    		// maximum spécifiée => message d'erreur
    		if($poidsFichier < $MAX_SIZE){
    			// On teste ensuite si le fichier a une extension autorisée
    			if(isExtAuthorized($extension)){
    				// Ensuite, on copie le fichier uploadé ou bon nous semble.
    				$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
    				if($uploadOk){
    					echo("L'upload a réussi !<br><br>");
    					echo(createReturnLink());
    				}else{
    					echo("L'upload a échoué !<br><br>");
    					echo(createReturnLink());
    				}
    			}else{
    				echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
    				echo (createReturnLink()."<br>");
    			}
    		}else{
    			$tailleKo = $MAX_SIZE / 1000;
    			echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
    			echo (createReturnLink()."<br>");
    		}		
    	}else{
    		echo("Le fichier choisi est invalide !<br>");
    		echo (createReturnLink()."<br>");
    	}
    }else{
    	echo("Vous n'avez pas choisi de fichier !<br>");
    	echo (createReturnLink()."<br>");
    }}
    ?></up>

  2. #2
    Membre à l'essai
    Homme Profil pro Jean-Charles Roussey
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean-Charles Roussey
    Âge : 34
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : mai 2011
    Messages : 14
    Points : 23
    Points
    23

    Par défaut

    Salut,

    Tu peux éventuellement remplacer les espaces par %20.

    la doc dis ici

    "id/pics/nouvel ans/"
    Code :
    1
    2
    3
    4
    5
    6
    <?php
    $ton_path  = "id/pics/nouvel ans/";
    $remplacent = "%20";
    $string = ereg_replace(' ', $remplacent, $ton_path);
    echo $string; /* vérification ;-) */
    ?>
    Retourne
    "id/pics/nouvel%20ans/"
    @+

  3. #3
    Expert Confirmé Avatar de RunCodePhp
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : janvier 2010
    Messages : 2 963
    Points : 3 910
    Points
    3 910

    Par défaut

    Salut

    Mais si le dossier ne contient pas d'espace comme id/pics/google ça mache!!
    Pourquoi donc chercher une autre solution alors que tu viens d'en trouver : nommer ces répertoires (ou dossiers) sans espaces.
    Faire autrement c'est se mettre (sérieusement) des bâtons dans les roues.

    Une règle qui au passage j'applique toujours, c'est de ne jamais nommer mes fichiers et répertoires avec des caractères spéciaux, c'est à dire : espace, àé&çù, etc, etc ...

    Utilise le caractère underscore _ pour simuler un espace, ce caractère est parfaitement correcte (n'est pas un caractère spécial).
    Donc renomme ton répertoire comme : nouvel_an
    Et l'affaire est réglée.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  4. #4
    Membre confirmé
    Responsable de service informatique
    Inscrit en
    août 2006
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 174
    Points : 228
    Points
    228

    Par défaut

    Bonjour,

    Je suis du même avis que RunCodePhp.

    Quel mauvaise habitude ces espaces, caractères spéciaux,etc.

    Natso.

  5. #5
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro Jérôme Réaux
    Webdesigner
    Inscrit en
    août 2008
    Messages
    5 404
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Réaux
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 5 404
    Points : 10 396
    Points
    10 396

    Par défaut

    Bonjour,
    - <header> ???
    - la balise <up>, c'est nouveau ?
    - faire des echo ...; après la balise </html>, c'est nouveau aussi ?

    Bref : ce serait bien de revoir l'organisation du code.
    Et connaitre la structure "type" d'une page serait un "plus" (avec doctype, head, body...).
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  6. #6
    Membre à l'essai
    Homme Profil pro Jean-Charles Roussey
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean-Charles Roussey
    Âge : 34
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : mai 2011
    Messages : 14
    Points : 23
    Points
    23

    Par défaut

    Pourquoi donc chercher une autre solution alors que tu viens d'en trouver : nommer ces répertoires (ou dossiers) sans espaces.
    Personne ne sais si c'est à lui de nommer les répertoires/fichiers, même si cela ressemble à un projet perso et que sur le principe je suis entièrement d'accord avec toi RunCodePhp Ont est parfois tributaires d'autres personnes qui n'ont jamais fait autres chose que du traitement de texte .

    @+

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •