Tester la présence d'un fichier et l'indiquer visuellement

Signaler
Messages postés
4
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
2 mai 2007
-
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
-
Bonjour,

Je suis à la recherche d'un script qui me permet de tester une liste de fichiers et d'en indiquer la présence par une image. Simplement, je ne sais pas développer en JS... Si vous pouvez me donner des fragments de codes ou m'aiguiller vers des sources, cela serait super !

Dans le principe

Liste de fichiers dans un répertoire (cette liste est connue, on n'a pas besoin de la déduire)

"fichier1.pdf"
"fichier2.pdf"
"fichier3.pdf"
...

Dans une page HTML

Pour le fichier 1
Si fichier présent afficher "image1" si non "image2"

Pour le fichier 2
Si fichier présent afficher "image1" si non "image2"

Pour le fichier 3
Si fichier présent afficher "image1" si non "image2"
...

Voilà, merci de votre aide très préciseuse

9 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

fichier sur le serveur à priori ? non ?
    pourquoi ne pas faire ça avec le langage sur ce serveur ?
    c'est le plus simple.

en javascript ?
    le problème avec un .pdf : je ne vois pas comment
                faire sans le charger justement...

une image (gif,png,bmp... ), ce ne serait pas très grave,
    on peut tester si elle est affichée ou pas.

<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
4
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
2 mai 2007

Tous les fichiers sont sur un serveur, dans une architecture de type intranet

L'idée que j'avais en fait était de tester sur le nom du fichier (sur la chaine), maintenant il y a peut être une solution plus simple ?

Peux tu m'en dire plus ?

"pourquoi ne pas faire ça avec le langage sur ce serveur ?"
 
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Bonjour

Tu peux essayer de les appeller avec un objet XMLhttpRequest, et la réponse à la requête dira si le fichier a été trouvé.

ex :
function newXMLHttpRequest() {
  var xmlreq = false;
  if (window.XMLHttpRequest) {
    xmlreq = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e1) {
      try {
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {
        xmlreq = false;
      }
    }
  }
return xmlreq;
}


 function getReadyStateHandler(req, responseXmlHandler) {
    return function () {
     if (req.readyState == 4) {
       if (req.status == 200) {
         Action a effectuer si la requete abouti
       } else {
         alert("HTTP error "+req.status+": "+req.statusText);
       }
     }
   }
 }

function verifFichier(itemCode,act) {
 var req = newXMLHttpRequest();
 req.onreadystatechange = getReadyStateHandler(req, updateCart);
 req.open("POST", Chemin du fichier (URL), true);
 req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 req.send(...);
}

Mais c'est peut-être un peut sale comme solution...
Messages postés
4
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
2 mai 2007

A priori ça doit marcher, mais ça va exploser le temps d'affichage si ça teste mes 52 fichiers...

Je me garde ta proposition sous le coude si je ne trouve rien d'autre, mais je souhaiterais quelque chose de plus élégant.

Ceci dit, la solution est peut être dans autre chose que le JS
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

C'est sûr 52 fichiers ça fait beaucoup

Dans ce cas l'idéal ça serait un langage côté serveur (PHP, ASP, etc.)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
ah ben oui
ov3rdoze
... pas pensé à ajax...
c'est une solution.
mais là, avec les nouvelles données ===> langage serveur.
ce sera le plus simple de toutes manières.
<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
4
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
2 mai 2007

Vous pouvez me rediriger vers une bonne source d'info AJAX...

Comme je ne connais pas du tout, j'aime autant aller sur un site bien expliqué.

Je compte sur vous
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
je pense que celle d'ov3rdoze est nickel ?
sinon, dans le forum et dans les sources de JavaScriptfr.com
une petitre recherche sur ajx et ou xmlhttprequest donnera son lot de réponses.
<hr />


Cordialement    Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Merci bultez

Celle que j'ai fourni fonctionne, je l'ai souvent utilisée. Mais il est possible que tu en trouves des plus optimisées dans les sources ou autre..

Le 2ième paramètre de getReadyStateHandler() reçois une fonction (c'est strange, je sais...) que tu dois déclarer. c'est celle qui sera exécutée si la requête aboutie.

       if (req.status == 200) {
                responseXmlHandler(...)