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 :

Type text interactif


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 141
    Par défaut Type text interactif
    Bonjour,

    Voilà j'ai créer un bouton ey un input type text. Le bouton au click premet d'ouvrir un eboite de dialogue pour rechercher un fichier sur mon ordinateur. Le input qiant à lui va simplement référer le fichier quià été sélectionné.

    Bref, jusque là, cela marche, le seul problème c'est que je suis obligé de recharger ma page web pour que le nouveau fichier sélectionné puisse être prise en compte.

    D'ou ma question yy aurait t'il un moyen de contourner cela, pour que mon champ text se met à jour intéractivement dès que j'ai sélectionné mon fichier ?

    Voilà mon code

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type=button value="ouvrir un fichier" onclick="getFile();">
    <input id='file' type="text" value=""/>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function getFile()
    {
      fileInput.click();
      var fileName = fileInput.value;
      return fileName ;
     
    }
    document.getElementById('file').value=getFile();

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 141
    Par défaut
    A défaut j'ai trouvé cela :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="divHidden" style="visibility: hidden; width: 0px; height: 0px">
    <input type=file id="fileInput">
    </div>
    <form name="frm" style="display:'none'">
    <input type="file" name="fic">
    <input type="reset" name="rst">

    Cela marche très bien, seul petit point noir, c'est que le input me renvoie tout le chemin d'accès vers le fichier alors que j'aurais préféré seulement le fichier.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Tu pourrais simplement réagir au onchange de l'input file -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 141
    Par défaut
    Ok, mais je sais pas du tout comment on fait cela .

    Mais bon sinon j'ai trouvé que avec cela
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="file" name="fic">
    <input type="reset" name="rst">

    Cela marche, il me suffit de récupérer ensuite le "text" qui y a dedans en php à l'aide de cela

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['fichier']['name']

    Cela semblle marcher, dans la discussions que j'ai trouvé sur internet, mais chez moi ça marche pas d'autant plus que la doc php sur le $_FILES m'aide pas plus je comprend pas.

    N.B: maintenant si pour l'iinstant je n'y arrive pas, je préfère opté pour la méthode php, pour la simple et bonne raison que je souhaite récupérer le "text" vers le fichier source pour y appliquer des traitement en php.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 141
    Par défaut Nom de fichier avec $_FILES
    Bonjour,

    J'ai testé le code basique qui suit qui consiste à récupérer le "text" qu'il y a dans mon input type 'files' et à y prendre que le nom du fichier, ce qui nous donne ceci

    Partie HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form name="frm" method="post" action="postfile.php" enctype="multipart/form-data">
    <input type="file" name="fichier" ><br>
    <input type="submit" value="Envoyer">
    </form>

    Partie PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if (!empty($_POST['fichier']['name'])){
             $tableau = explode ('/',$_FILES['fichier']['name']); // découpe le nom aux '/'
             echo $tableau[count($tableau)-1]; // affiche le dernier;
    } 
    else{
    echo "C'est vide";
    }
    ?>
    Hors malheureusement cela ne marche pas, le champs contenant le chemin du fichiers reste concidérer comme vide alors que celui-ci est plein.

    Quelqu'un peut m'aider, svp

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as mis $_POST['fichier'] au lieu de $_FILES['fichier']Mais sinon je ne comprends pas ou tu veux en venir : $_FILES['fichier']['name'] contient le nom du fichier seulement ; le chemin local entier n'est pas transmis.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par sabotage
    le chemin local entier n'est pas transmis.
    Et ceci parce que ça n'a aucune utilité une fois sur le serveur...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 141
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu as mis $_POST['fichier'] au lieu de $_FILES['fichier']Mais sinon je ne comprends pas ou tu veux en venir : $_FILES['fichier']['name'] contient le nom du fichier seulement ; le chemin local entier n'est pas transmis.
    Désolé j'avais mal recopié mon code , mais j'avais bien mis mon $_FILES; toujours est t'il, cela ne marche toujous pas, car je souhaite savoir via php si mon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="fichier" >
    Est vide ou pas, et si il n'est pas vide je récupère le chemin du fichier pour le traiter, ce qui nous donne cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (!empty($_FILES['fichier']['name'])){
             $tableau = explode ('/',$_FILES['fichier']['name']); // découpe le nom aux '/'
             echo $tableau[count($tableau)-1]; // affiche le dernier;
    } 
    else{
    echo "C'est vide";
    }
    Hors quoi que je fasse même quand mon input est "plein", cela m'affiche vide;

    Donc pourquoi ça beug ?
    ou
    Comment puis je enfin récupérer le chemin d'accès de mon input pour pouvoir le traiter

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    je récupère le chemin du fichier pour le traiter
    Comme on te l'a dit, il n'y a pas de chemin du fichier, uniquement son nom.

    si tu obtiens "C'est vide" il est probable que tu as une erreur d'upload que tu trouveras dans $_FILES['fichier']['error']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 141
    Par défaut
    Bon je laisse tomber, même en faisant cela:

    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
     
    <form method="post">
    <input type="file" name="toto">
    <input type="submit" value="Envoyer">
    </form> 
     
    <?php 
    if (!empty($_FILES['toto']['name'])){
           	echo  "ok";
    } 
    else{
    $erreur=$_FILES['toto']['error'];
    echo $erreur;
    echo "c'est vide";
    }
    ?>
    Cela ne marche pas, aucun erreur envoyé, juste le c'est vide ecris quoi que je fasse;

    Bref j'abandonne

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

Discussions similaires

  1. Problème champs de type texte.
    Par Le-Cortex dans le forum Access
    Réponses: 7
    Dernier message: 06/01/2005, 15h42
  2. [Doublons] Unicité sur un champ de type TEXT
    Par PyRoFlo dans le forum Requêtes
    Réponses: 11
    Dernier message: 01/09/2004, 10h56
  3. [access] champs type text sur un pc blob sur un autre
    Par Harry dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/07/2004, 10h30
  4. Fonction LEFT sur champ de type "text" : méthodes
    Par MatthieuQ dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/06/2004, 12h15
  5. [UPDATE] Mise à jour d'un type text
    Par nico1492 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/01/2004, 14h26

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