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] fichier pas sauvegardé au bon endroit


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 959
    Par défaut [Upload] fichier pas sauvegardé au bon endroit
    Bonjour,

    J'ai un formulaire dans lequel j'ai un champ INPUT avec TYPE=FILE, et NAME=foto1.
    Le formulaire appelle un script PHP, dont voici un extrait:

    (le code intéressant est en rouge)
    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
    <?
               		// extraction du nom des images
    				
    				
    				
    		   
                   include ('../fonctions/connexion2.php');
                    $request='insert into produits (titre,description,tarif)
                    values (
                        "'.$_POST['titre'].'",
                        "'.$_POST['description'].'",
                        '.$_POST['tarif'].')';
                   
                    
                    echo $request;
                    $result =mysql_query($request) or die(mysql_error());
                    
    				if ($result){
    				
    				
    				
    					//fichier1
    					
    					$uploaddir = '../images/';
    					$uploadfile = $uploaddir . basename($_FILES['foto1']['name']);
    
    					echo '<pre>';
    					if (move_uploaded_file($_FILES['foto1']['tmp_name'], $uploadfile)) {
    				    	echo "File is valid, and was successfully uploaded.\n";
    					} else {
    					    echo "Possible file upload attack!\n";
    					}
    
    					echo 'Here is some more debugging info:';
    					print_r($_FILES);
    
    					print "</pre>";
    					
    					// récupération de l'id
    					include ('../fonctions/connexion2.php');
                    	$request='select id from produits where titre="'.$_POST["titre"].'" 
    					and description="'.$_POST["description"].'"';
                    	
                    	$result =mysql_query($request) or die(mysql_error());
    					
    					$ligne_id=mysql_fetch_object($result);
    					$id=$ligne_id->id;
    					
    					//renommage du fichier destination
    					
    					rename ($uploadfile,$ploaddir.$id."£¤"."1"."£¤".basename($_FILES['foto1']['name']));
    
    					//ajout du nom de fichier local dans la BDD
    					$request="
    					update produits 
    					set cheminPhoto1='./images/"."£¤".$id."£¤".$nom_fichier."'
    					where id=".$id;
    					
                    	
                    	$result =mysql_query($request) or die(mysql_error());
    Ce script copie le fichier dans le répertoire \images\, change son nom pour en garantir l'unicité, et le stocke dans la bdd. Le pb, c'est que le fichier se retrouve dans le répertoire admin, cad le répertoire du fichier php...

    Avez-vous une idée pour résoudre ce pb?

    Merci, lolveley.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Par défaut
    Citation Envoyé par olivier57b
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (move_uploaded_file($_FILES['foto1']['tmp_name'], $uploadfile))
    Il faut que tu lui donne le chemin entier où tu veux mettre ton image, ici tu ne lui passe en paramettre que $uploadfile donc par defaut il le met dans le dossier où le script se trouve. Par exemple il faudrai mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (move_uploaded_file($_FILES['foto1']['tmp_name'], $uploaddir.$uploadfile))

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 959
    Par défaut
    Mmh, le $uploadfile est construit avec le $uploaddir!

    Mais entre-temps j'ai trouvé un morceau de script sur le net, et ça marche!
    Voilà le beans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (move_uploaded_file($_FILES['foto1']['tmp_name'],
         "../images/".$id."fw"."1"."fw"."{$_FILES['foto1']['name']}")) { 
    } 
    else {
         echo "Possible file upload attack!\n;}
    je dois reconnaître que je ne comprends pas ce code (je suis débutant en PHP).

    Mais ça marche.
    Si vous comprenez ce code, vous pouvez me l'expliquer.

    lolveley.

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

Discussions similaires

  1. [Upload] Upload fichier,Pas de réception
    Par vincedjs dans le forum Langage
    Réponses: 11
    Dernier message: 03/02/2006, 16h27
  2. [C#] Pourquoi je ne peux pas sauvegarder le fichier Xml ?
    Par gregoun dans le forum Services Web
    Réponses: 5
    Dernier message: 05/05/2004, 11h00

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