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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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 éclairé Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    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

  3. #3
    Modérateur

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

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    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 éclairé Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

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


  5. #5
    Membre éclairé 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
    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 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    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 éclairé Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    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 !

  8. #8
    Membre éclairé 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
    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;
    }

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

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