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

JavaScript Discussion :

Formulaire >> Isoler le nom et l'extension d'un fichier


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Par défaut Formulaire >> Isoler le nom et l'extension d'un fichier
    Bonjour,

    J'ai un champs de texte dans lequel un internaute entre le chemin de son fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="userfile" type="file">
    Dans ce champs ce trouve donc quelque chose du type C:/dossier/fichier.ext
    Ce que j'aimerais faire c'est créer deux autres champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input name="nom">
    et
    <input name="extension">
    Dans le premier champs il y aurait le nom du fichier (ici fichier.ext) et dans le deuxième l'extension précédée d'un point (ici .ext)

    J'aurais au final dans mon formulaire 3 champs, un avec le chemin du fichier, l'un avec le nom et l'autre avec l'extension et ces informations serait ainsi récuperables

    Le problème c'est que je ne trouve pas de script qui soit capables d'éffectuer cette action. Pouvez vous m'aider ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    de toutes façons, quand tu upload un fichier, tu as plusieurs informations qui sont transmises, dont le nom (extension comprise)... je ne vois pas pourquoi tu veux duppliquer ces informations...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    une méthode que tu peux appliquer :
    lis la chaîne de caractères en commençant par la fin. Dès que tu trouve un point mémorise sa position p1.
    Continue jusquà rencontrer le dernier "/" ou "\" et mémorise la position p2.

    Tu as p1>p2.
    -donc entre (p2+1) à (p1-1) : tu as le nom du fichier.
    -à (p1+1) à la fin de la chaine (chaine.length) tu as l'extension.
    -de 0 à (p2-1) tu as le chemin.

    Pour extraire une partie de la chaine :
    chaine.slice(valeur1, valeur2)
    avec 0<valeur1<valeur2

    Petit inconvénient : les fichiers à double extension (.ext.ext). Ce qui est encore rare.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Par défaut
    ok merci mé comment on fé pour ecrire ça en javascript ?

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    voici un exemple. Je pense qu'on peut mieux faire, mais ce script fonctionne.

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function testChaine()
    {
     var nom = document.getElementById("idFile").value;
     var lg = nom.length;
     var car1 = String.fromCharCode(46);
     var car2 = String.fromCharCode(92);
     var p1=-1, p2=-1, i;
     var tabNom = nom.split("");
     var chemin, fichier, extension;
     
     for (i=lg-1; i>=0; i--)
     {
         if (tabNom[i].toString()==car1 && p1==-1)
         {
          p1 = i;
         }
         if (tabNom[i].toString()==car2 && p2==-1)
         {
          p2 = i;
         }
     }
     
     if (p2>=0)
     {
        chemin = nom.slice(0,p2+1);
        if (p2<p1)
        {
           fichier = nom.slice(p2+1,p1);
           extension = nom.slice(p1+1,lg);
        }
        else
        {
            fichier = nom.slice(p2+1,lg);
            extension="";
        }
     }
     else
     {
      chemin="Erreur...";
      fichier="";
      extension="";
     }
     
     document.getElementById("idChemin").value = chemin;
     document.getElementById("idFichier").value = fichier;
     document.getElementById("idExtension").value = extension;
     
     
     
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
    <input type="file" id="idFile">
    <input type="button" value="Bouton" id="BNom" onclick="testChaine()">
    <br><br><br>
    <input type="text" value="" id="idChemin"><br>
    <input type="text" value="" id="idFichier"><br>
    <input type="text" value="" id="idExtension"><br>
     
     
    </body>
     
    </html>

Discussions similaires

  1. [RegEx] Récupérer le nom et l'extension d'un fichier
    Par Tchupacabra dans le forum Langage
    Réponses: 10
    Dernier message: 31/01/2012, 15h54
  2. [AJAX] Nom de l'extension d'un fichier json
    Par boboss123 dans le forum AJAX
    Réponses: 2
    Dernier message: 07/02/2010, 22h21
  3. [RegEx] Isoler le nom d'une balise
    Par Bloodscalp dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2008, 17h08
  4. comment isoler le nom d'une colonne ou d'une table?
    Par Mydriaze dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/07/2007, 16h59
  5. isoler le nom du fichier dans url
    Par php_de_travers dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2006, 07h36

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