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

Kridge Messages postés 4 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 2 mai 2007 - 2 mai 2007 à 11:39
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014 - 2 mai 2007 à 14:53
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 mai 2007 à 13:04
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 />
0
Kridge Messages postés 4 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 2 mai 2007
2 mai 2007 à 13:42
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 ?"
 
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
2 mai 2007 à 13:45
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...
0
Kridge Messages postés 4 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 2 mai 2007
2 mai 2007 à 13:53
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
2 mai 2007 à 13:56
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.)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 mai 2007 à 14:12
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 />
0
Kridge Messages postés 4 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 2 mai 2007
2 mai 2007 à 14:18
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 mai 2007 à 14:41
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 />
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
2 mai 2007 à 14:53
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(...)
0
Rejoignez-nous