Test d'existence d'un fichier en javascript

sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008 - 1 sept. 2008 à 18:02
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 2 sept. 2008 à 12:44
Bonjour,


j'ai une page de mon application web avec un lien qui ouvre un fichier htm généré.
Or je voudrais tester si ce fichier généré en question existe bien pour, le cas échéant, affiché une popup disant que le fichier n'existe pas...
Voici la fonction que j'utilise...


function fabsent()
{
 var fso;
 fso = new ActiveXObject("Scripting.FileSystemObject");
 var chemin = "C:\mon_fichier";
 if (!fso.FileExists(chemin))
 {
 alert ("Ce document n'existe pas");
 }
}


Le problème est que je me retrouve avec une erreur qui me dit : "Un composant ActiveX ne peut pas créer un objet".


Quelqu'un sait-il d'où vient le problème?
Merci d'avance pour vos réponses.


Cordialment,
Sebicool

13 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 sept. 2008 à 07:38
bizarre ! bizarre !
ma réponse est apparue un instant dans la pub de droite !

je remet :

bonjour,
il faut autoriser les ActiveX dans Internet Explorer.
Outils / Options Internet / sécurité
   choisir la zone à paramétrer ( intranet local ou sites de confiance
   à mon avis, sinon on prend des risques )
   personnaliser le niveau, et dans la liste qui s'affiche
   cocher ce qui doit l'e^tre ( activer ou demander )

CordialementBu
0
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
2 sept. 2008 à 09:59
Bonjour Bultez,

merci pour ta réponse...
Y aurait-il une autre solution que de baisser le niveau de sécurité d'internet, car je ne pense pas que mes clients aprécient cette idée...

Cordialement,
Sebicool
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 sept. 2008 à 10:06
on ne baisse pas le niveau de sécurité !!??!!!     on accepte les activeX ou pas dans les zones voulues.
et tant qu'on ne les accepte pas, ben, mon foie, ils ne s'exécutent pas.
CordialementBu
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 sept. 2008 à 10:12
ou alors, si c'est une page.htm locale renomme là page.hta
et on l'exécute en double cliquant dessus, non pas en lançant IE
( ce sera d'ailleurs interprété par mshta.exe )
Cordialement     Bul 
0

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

Posez votre question
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
2 sept. 2008 à 10:27
Ok. C'est bon pour l'activation...
Mais je me retrouve avec une erreur "Objet attendu" sur la ligne de déclaration
"var fso = new ActiveXObject("Scripting.FileSystemObject");"

Sais-tu d'où ca peut venir?
Merci.

Cordialement,
Sebicool
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 sept. 2008 à 10:49
var chemin = "C:\\mon_fichier"; ou "C:/mon_fichier"
sinon, pas de raison... attention la numérotation commence à 0
pour debogger (IE) :
•————————•——————————————————————————————————————————————————————————•
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | o Afficher une notification de chaque erreur de script |
| | o Désactiver le débogage de Scripts (Internet Explorer) |
| | et mieux, : télécharger le Debogger IE |
| | voir aussi : DebugBar et Companion JS |
•————————•——————————————————————————————————————————————————————————•

CordialementBu
0
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
2 sept. 2008 à 11:10
Effectivement, avec des \ et non des /, ca fonctionne...

Pour rappel, la fonction que j'utilise est :

function fabsent()
{
 var fso = new ActiveXObject("Scripting.FileSystemObject");
 var chemin = "C:\mon_fichier";
 if (!fso.FileExists(chemin))
 {
 alert ("Le fichier n'existe pas.");
 return false;
 }
}

Or, quand le fichier n'existe pas, il y a la popup mais IE tente d'ouvrir quand même la page (ce que je ne veut pas bien sûr) et quand le fichier existe, la popup s'ouvre aussi (ce que je ne veut pas) puis le fichier.
As-tu une idée?

En tout cas, merci pour tout.
Cordialement,
Sebicool
0
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
2 sept. 2008 à 11:22
J'ai essayé de changer le lien en texte normal et de modifier la fonction en :

function fabsent()
{
 var fso = new ActiveXObject("Scripting.FileSystemObject");
 var chemin = "C:\mon_fichier";
 if (!fso.FileExists(chemin))
 {
 alert ("Le fichier n'existe pas.");
 return false;
 }
 else
 {
  fso.OpenTextFile(chemin,1,false);
 }
}

Mais j'ai toujours le même problème...
0
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
2 sept. 2008 à 11:24
Le même problème étant que, que le fichier existe ou pas, je ne rentre pas dans le else... C'est très bizarre...
0
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
2 sept. 2008 à 11:38
Bon, j'ai changé le chemin du fichier en "C://mon_fichier" et la je rentre dans le else et seulement quand le fichier existe!
Mais par contre, c'est le OpenTextFile qui marche pas...
Ca me rend fou...

Une idée?
Merci.

Cordialement,
Sebicool
0
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
2 sept. 2008 à 11:44
J'ai remplacé le OpenTextFile par un window.open et la ca marche! enfin...

Merci.

Cordialement,
Sebicool
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 sept. 2008 à 12:44
opentextfile et window.open ça n'a rien à voir !
opentextfile ouvre un fichier pour le traiter, window.open l'affiche.
mais bon, si c'est ce qu'il te fallait....
maintenant si ce n'est que pour l'afficher, doit bien y avoir des
solutions pour éviter les ActiveX ( et donc le paramétrage de IE )
Cordialement    Bul
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 sept. 2008 à 07:36
-1
Rejoignez-nous