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 ou pas


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut [Upload] upload ou pas
    bonjour,

    j'ai besoin d'analyser un fichier csv pour l'ajouter à une bdd. Cela se fait bien sauf que ce ficher doit être dans le répertoire de mon site.

    Comment faire pour l'uploader ? Je fais ça mais ça ne marche pas. Enfin je n'arrive pas à récupèrer l'adresse du fichier mais juste sont nom (sous firefox) via le <input type="file"...

    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
     
    $chemin=$_POST['fichier'];
    $upload='upload/';
    $extensions=array("csv","xls","txt");
     
    if (isset($_FILES['fichier']))
    {
    	$fichier=basename($_FILES['fichier']['name']);
    	$ext=strrchr($fichier,'.');
    	if (!in_array($ext,$extensions))
    	{
    		echo "Erreur de type de fichier.";
    		echo $mess_redir;
    		echo '<meta http-equiv="Refresh" content="$temps_redirection;URL='.$page_ajout.'">';
    	}
     
    	if (move_uploaded_file($_FILES['fichier']['tmp_name'],$upload.$fichier))
    		echo "Fichier uploadé.<br>";
    	else
    	{
    		echo "Erreur lors de l'upload.";
    		echo $mess_redir;
    	}
    }
    else
    {
    	echo "non";
    	exit;
    }

  2. #2
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Si j'ai bien compris :

    Je ne pense pas que tu puisse recupérer le chemin du fichier que tu upload !

    Lors de ton upload, tu dois spécifier un chemin ( en relatif c'est mieux ) que tu peux inserer par exemple dans une bd. Comme cela tu pourra parcourrir ta table et bien entendu récupérer ce chemin pour en faire ce que tu veux !

    Apres pour l'upload, tu as plein de tuto differents, mais ta méthode a l'air bonne
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 597
    Points
    12 597
    Par défaut
    Bonjour,

    Effectivement tu ne récupères pas l'adresse de ton fichier, puisque tu n'essaies pas de la récupérer!

    Par contre j'ai trouvé une petite erreur dans ton code.

    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
     
    $chemin=$_POST['fichier'];
    $upload='upload/';
    $extensions=array("csv","xls","txt");
     
    if (isset($_FILES['fichier']))
    {
        $fichier=basename($_FILES['fichier']['name']);
        $ext=strrchr($fichier,'.');
        if (!in_array($ext,$extensions))
        {
            echo "Erreur de type de fichier.";
            echo $mess_redir;
            echo '<meta http-equiv="Refresh" content="$temps_redirection;URL='.$page_ajout.'">';
        }
     
        if (move_uploaded_file($_FILES['fichier']['tmp_name'],$upload.$fichier))
        {
            echo "Fichier uploadé.<br>";
        }else
        {
            echo "Erreur lors de l'upload.";
            echo $mess_redir;
        }
    }else{
        echo "non";
        exit;
    }
    Il manquait des accolades à un if

  4. #4
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Bien vu, matinal MaitrePylos !

    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  5. #5
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    je n'ai qu'une ligne dans ce if donc elles sont facultatives...Sinon il me manque quoi pour que l'upload marche ? $chemin=$_POST['fichier'];
    doit récupèrer l'adresse du fichier normalement puisque le champs htrml correspondant est "file"

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 597
    Points
    12 597
    Par défaut
    Si ton if n'est que sur une seul ligne est tu sûr que le else en dessous, sera bien interpréter et à l'endroit que tu penses.

    2 accolades ne te coûte rien et éclairci le code.


    le chemin de ton fichier c'est

  7. #7
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    le chemin tu dois le spécifier toi meme dans une variable .

    tu n'as pas besoin de faire un basename normalement !


    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
    $chemin=$_POST['fichier'];
    $upload='upload/';
    $extensions=array("csv","xls","txt");
     
    if (isset($_FILES['fichier']))
    {
        $fichier=$_FILES['fichier']['name'];
        $ext=strrchr($fichier,'.');
        if (!in_array($ext,$extensions))
        {
            echo "Erreur de type de fichier.";
            echo $mess_redir;
            echo '<meta http-equiv="Refresh" content="$temps_redirection;URL='.$page_ajout.'">';
        }
     
        if (move_uploaded_file($_FILES['fichier']['tmp_name'],$upload.$fichier))
        {
            echo "Fichier uploadé.<br>";
            // ET LA TU PLACE UNE REQUETE EN INSERTION DS TA BASE AVEC UN      CHEMIN VERS TON FICHIER $chemin = $upload.$fichier;
        }else
        {
            echo "Erreur lors de l'upload.";
            echo $mess_redir;
        }
    }else{
        echo "non";
        exit;
    }

    Du moins moi j'aurais fais comme cela ! et d'ailleurs je fais comme cela quand je traite des fichiers apres un upload !
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  8. #8
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    pour le if j'en suis sûr (je l'utilise beaucoup).

    ça ne marche toujours pas.

    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
    $upload='upload/';
    $extensions=array("csv","xls","txt");
     
    if (isset($_FILES['fichier']))
    {
    	$fichier=$upload.$_FILES['fichier']['name'];
    	$ext=strrchr($fichier,'.');
    	if (!in_array($ext,$extensions))
    	{
    		echo "Erreur de type de fichier.";
    		echo $mess_redir;
    		echo '<meta http-equiv="Refresh" content="$temps_redirection;URL='.$page_ajout.'">';
    	}
     
    	if (move_uploaded_file($_FILES['fichier']['tmp_name'],$upload.$fichier))
    		echo "Fichier uploadé.<br>";
    	else
    	{
    		echo "Erreur lors de l'upload.";
    		echo $mess_redir;
    	}
    }
    else
    {
    	echo "non";
    	exit;
    }

  9. #9
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Effectivement la ca ne marche pas car ta fonction move_uploaded prend en parametre ton fichier et une chaine de caractere pour indiquer le chemin ! La ton chemin est du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fichier/csv/upload/monfichier.csv
    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
    $upload='upload/';
    $extensions=array("csv","xls","txt");
     
    if (isset($_FILES['fichier']))
    {
    	$fichier=$_FILES['fichier']['name'];
    	$ext=strrchr($fichier,'.');
    	if (!in_array($ext,$extensions))
    	{
    		echo "Erreur de type de fichier.";
    		echo $mess_redir;
    		echo '<meta http-equiv="Refresh" content="$temps_redirection;URL='.$page_ajout.'">';
    	}
     
    	if (move_uploaded_file($_FILES['fichier']['tmp_name'],$upload))
    		echo "Fichier uploadé.<br>";
    	else
    	{
    		echo "Erreur lors de l'upload.";
    		echo $mess_redir;
    	}
    }
    else
    {
    	echo "non";
    	exit;
    }
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  10. #10
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    j'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move_uploaded_file($_FILES['fichier']['tmp_name'],$fichier)
    mais toujours pas

  11. #11
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    tu as quoi comme erreur ?

    par contre je regardai par rapport a la fonction move_uploaded_file sur un tuto et apparement il faut concaténer le nom du fichier sur le deuxieme parametre de la fonction ICI

    Je disais une bétise dsl !
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  12. #12
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 597
    Points
    12 597
    Par défaut
    Attention ce que Pierre24 dis est que si tu fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $fichier=$upload.$_FILES['fichier']['name'];
    ton upload doit devenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    move_uploaded_file($_FILES['fichier']['tmp_name'],$upload.$fichier)

    grillé

  13. #13
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut
    Je m'embrouille ds tout ça lol
    faut faire attention a ce qu'on met ds $fichier c vrai

    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  14. #14
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    c'est ce que je fais, non ?

    Petite question au passage : je suis bien obliger d'uploader mon fichier si je veux le faire traiter via du php ?

  15. #15
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 597
    Points
    12 597
    Par défaut
    Reprenons depuis le début, voici de quoi télécharger ton fichier et le déplacer, on déjà essayé de faire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $fichier = $_FILES['fichier'];
    $content_dir = 'upload/'; // dossier où sera déplacé le fichier
    $tmp_file = $_FILES['fichier']['tmp_name'];
    $name_file = $_FILES['fichier']['name'];
    move_uploaded_file($tmp_file, $content_dir . $name_file);
    ce code fonctionne correctement, essaye le

  16. #16
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    j'ai un problème à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_FILES['fichier']))
    $_FILES['fichier'] n'existe pas.

    le code html (formulaire) :

    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
    <html> 
    	<head> 
    		<title>Importer un fichier CSV</title> 
    	</head> 
     
    	<body> 
    		<h2>Importer un fichier CSV dans la BD</h2> 
     
    		<form method="post" action="index.php?page=action_ajout_csv.php">
    			Nom du fichier csv de la BD : 
    			<br>
    			<input type="file" name="fichier" enctype="multipart/form-data"/>
    			<br>
    			Séparateur : <input type="text" size="1" maxlength="1" value=";" name="separateur">
    			<br>
    			<input type="submit" value="Analyser"> 
    		</form>
     
    	</body> 
     
    </html>

  17. #17
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 597
    Points
    12 597
    Par défaut
    est-tu sur du chemin?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="index.php?page=action_ajout_csv.php">

    fais un vardump

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vardump($_FILES['fichier']);

  18. #18
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    il me dit qu'il trouve pas vardump(). J'ai fait un print_r, ça n'affiche même pas un Array().

    Je suis sûr de mon adresse (elle m'affiche que ça marche pas).

  19. #19
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 597
    Points
    12 597
    Par défaut
    Attention ici dans le html il y a des erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form action="index.php?page=action_ajout_csv.php">
    			Nom du fichier csv de la BD : 
    			<br>
    			<input type="file" name="fichier" enctype="multipart/form-data"/>
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form action="index.php?page=action_ajout_csv.php" enctype="multipart/form-data"/ method="POST">
    			Nom du fichier csv de la BD : 
    			<br>
    			<input type="file" name="fichier" >

  20. #20
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    En effet, c'était ça. Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Upload] Upload - Ne recupere pas le tmp_name
    Par lonyc dans le forum Langage
    Réponses: 3
    Dernier message: 18/10/2008, 14h54
  2. [Upload] Upload réussi mais pas vraiment
    Par Roromix dans le forum Langage
    Réponses: 11
    Dernier message: 26/03/2007, 16h25
  3. [C#] ftp : pourquoi mon fichier à uploader n'est pas accessible ?
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/09/2006, 14h52
  4. [Upload] Ne retourne pas d'erreur
    Par Agité dans le forum Langage
    Réponses: 14
    Dernier message: 09/05/2006, 12h08
  5. [Upload] Upload fichier,Pas de réception
    Par vincedjs dans le forum Langage
    Réponses: 11
    Dernier message: 03/02/2006, 15h27

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