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 :

R�cup�rer dans une variable qu'un fichier existe


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 122
    Par d�faut R�cup�rer dans une variable qu'un fichier existe
    Bonjour,

    En pur JavaScript je souhaite initialiser une variable pour savoir si un fichier existe sans utiliser d'activeX (fso...)

    L'id�e, pour savoir si ce fichier existe, serait de tester le chargement d'une image...

    Ce code fonctionne et d�tecte bien la pr�sence ou l'absence du fichier t�moin 4K.jpg :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function checkImage(imageSrc, Ok, Nok) {
        var img = new Image();
        img.onload = Ok; 
        img.onerror = Nok;
        img.src = imageSrc;
    }
     
    checkImage("4K.jpg", function(){ alert("Ok"); }, function(){ alert("Nok"); } );
    Par contre ceci ne fonctionne pas car v�hicule toujours la m�me valeur en variable FileOk... que le fichier soit ou non pr�sent.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var FileOk = 0;
    function checkImage(imageSrc, Ok, Nok) {
        var img = new Image();
        img.onload = Ok; 
        img.onerror = Nok;
        img.src = imageSrc;
    }
     
    checkImage("4K.jpg", function(){ FileOk = 1; }, function(){ FileOk = 0; } );
     
    alert(FileOk)
    Un appel de cette mani�re ne change rien si fonction :

    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
     
    var FileOk = 0;
    function checkImage(imageSrc) {
     var img = new Image();
        img.onload = Ok; 
        img.onerror = Nok;
        img.src = imageSrc;
    }
     
    function Ok() {
         FileOk = 1;}
     
    function Nok() {
        FileOk = 0;
    }
     
    testImage("4K.jpg");
    Merci de vos id�es...

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Il faut du temps pour faire la requ�te et v�rifier que l'image existe. C'est donc une op�ration asynchrone.

    Ton premier exemple fonctionne car repose sur les callbacks onload et onerror. Tu ne pourras utiliser la variable fileOk que dans un callback, quand le test est fini.

  3. #3
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 122
    Par d�faut
    Merci de cette r�ponse !

    Pour information le fichier t�moin 4K.jpg ne fait que 46 ko... une tempo ne change rien, de m�me que r�cup�rer la variable apr�s l'affichage alert("Ok")...

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    La taille n'a aucune importance, il faut quand m�me du temps pour que la requ�te passe du client au serveur et vice-versa. Le callback doit marcher, si ce n'est pas le cas c'est toi qui as fait une erreur.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 18/09/2013, 00h08
  2. R�ponses: 2
    Dernier message: 17/06/2008, 12h49
  3. R�cup�rer dans une variable une partie du nom d'un onglet
    Par Bubale dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 04/05/2008, 16h34
  4. r�cup�rer dans une variable le r�sultat d'une requete
    Par Stargate SG1 dans le forum Access
    R�ponses: 1
    Dernier message: 31/05/2007, 18h08
  5. R�cup�rer dans une variable la note de bas de page
    Par Manudibango dans le forum G�n�ral VBA
    R�ponses: 6
    Dernier message: 03/12/2006, 17h27

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