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 :

Comment récupérer le chemin complet à partir d'un upload ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut Comment récupérer le chemin complet à partir d'un upload ?
    Bonjour à tous,

    Je suis actuellement entrain de développer un site en PHP à l'aide de la plateforme EasyPHP.

    Cela fait un moment que j'essaye de trouver une solution pour récupérer le chemin d'un fichier texte (.doc, .odt, .xls, .ppt, ...) et l'insérer dans ma base de donnée. J'aimerais grâce à ce chemin pouvoir par la suite, ouvrir le fichier en cliquant sur un lien.

    Quelqu'un aurait une idée ?

    Voici mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form enctype="multipart/form-data" action="test2.php" method="post">
     
     
     
    	  <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
     
     
    	  Envoyez ce fichier : <input name="fichier" type="file" />
     
     
    	  <input type="submit" value="Envoyer le fichier" />

    Et voici ce que j'ai trouvé : cela récupère le chemin temporaire mais je ne sais pas si c'est un bon moyen. De plus, on ne peut télécharger que des images.

    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
    $uploaddir = './';;
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
     
    echo '<pre>';
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "Le fichier est valide, et a été téléchargé
               avec succès. Voici plus d'informations :\n";
    } else {
        echo "Attaque potentielle par téléchargement de fichiers.
              Voici plus d'informations :\n";
    }
     
    echo 'Voici quelques informations de débogage :';
    print_r($_FILES);
     
    echo '</pre>';
    Merci de votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 180
    Par défaut
    Ton script ne se compose que de cela?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut
    Voici mon script complet :

    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
     
    	<form enctype="multipart/form-data" action="test2.php" method="post">
     
     
    	  <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
     
     
    	  Envoyez ce fichier : <input name="userfile" type="file" />
     
    	  <input type="submit" value="Envoyer le fichier" />
     
    	</form>
     
     
    <?php
     
     
    $uploaddir = './';;
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
     
    echo '<pre>';
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "Le fichier est valide, et a été téléchargé
               avec succès. Voici plus d'informations :\n";
    } else {
        echo "Attaque potentielle par téléchargement de fichiers.
              Voici plus d'informations :\n";
    }
     
    echo 'Voici quelques informations de débogage :';
    print_r($_FILES);
     
    echo '</pre>';
     
     
     
     
    if (isset($_FILES['userfile']))
    {
     
    	$host="localhost";
    	$user="root";
    	$password="";
    	mysql_connect($host,$user,$password);
    	mysql_select_db("orange");
     
    	$img_blob = file_get_contents ($_FILES['userfile']['tmp_name']);
    	$req = "insert into document (chemin_doc) values "."'".$img_blob."' " ;
    	$ret = mysql_query ($req) or die (mysql_error ());
    	return true;
     
    }
     
     
     
     
     
    ?>


    C'est juste ma première étape, mais je ne sais pas si je suis sur la bonne voie ... J'aimerais des conseils ou des idées.

  4. #4
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 180
    Par défaut
    Utilise plutôt ce script (récup sur google)
    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
     
    <?php
    //Ne pas oublier de remplacer fichier par le nom de ton input
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
        $content_dir = 'upload/'; // dossier où sera déplacé le fichier
     
        $tmp_file = $_FILES['fichier']['tmp_name'];
     
        if( !is_uploaded_file($tmp_file) )
        {
            exit("Le fichier est introuvable");
        }
     
        // on copie le fichier dans le dossier de destination
        $name_file = $_FILES['fichier']['name'];
     
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
        {
            exit("Impossible de copier le fichier dans $content_dir");
        }
     
        echo "Le fichier a bien été uploadé";
    }
     
    ?>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut
    Merci, j'avais également trouvé ce code sur google. Je l'avais testé mais cela n'a pas marché.

    J'ai bien fait les modifications :

    - changé le nom de mon input

    Envoyez ce fichier : <input name="upload" type="file" />

    - indiqué le chemin dans lequel mon fichier sera uploadé

    $content_dir = 'D:\Sources\EasyPHP\EasyPHP5.2.10\www\fichiers';

    Si j'ai bien compris, le fichier que j'ai uploadé doit se retrouver dans le dossier 'fichier' ...

    Est ce bien le cas ?

  6. #6
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 180
    Par défaut
    Non en fait upload c'est le nom de ton submit, le nom qu'eux ont donné c'est fichier donc voila tu peux mettre fichier à l'attribut name et en principe cela devrait fonctionner.

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

Discussions similaires

  1. Comment récupérer le chemin complet SANS le nom de la page HTML ?
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/09/2010, 11h17
  2. Réponses: 13
    Dernier message: 10/04/2006, 17h25
  3. Réponses: 1
    Dernier message: 18/11/2005, 16h55
  4. Comment récupérer le chemin d'une table liée
    Par ptitepunk dans le forum Access
    Réponses: 2
    Dernier message: 15/09/2005, 10h47
  5. Récupérer le chemin complet de l'appli
    Par alainpeniche dans le forum Windows
    Réponses: 3
    Dernier message: 10/08/2005, 14h03

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