Bonjour, voila je veux tester si un fichier sur le disque dur exist. Je fait donc ceci:
function fichierExiste(url){
var httpRequest = false;
if (window.XMLHttpRequest) { // Mozilla, [Safari](http://www.clubic.com/telecharger-fiche38283-safari.html),...
httpRequest = new XMLHttpRequest();
}else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {}
}
}
if (!httpRequest) {
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
httpRequest.open("GET", url, false);
httpRequest.setRequestHeader("Cache-Control","no-cache");
httpRequest.send(null);
if(httpRequest.status == 200) { //Le fichier existe
return true;
}else{
return false;
}
}
Donc sur Firefox et IE6*, ca fonctionne mais malheureusement sous IE7, ca bug car il utilise le cache malgré le setRequestHeader. Donc il suffit que IE7 detecte une fois le fichier pour le detecter pour toujours, et meme le refresh, F5 et meme redemarrer le navigateur n’y fait rien…
Donc si qq’un a une idée, je suis preneur…
Merci
Edité le 18/01/2008 à 07:39