Überprüfen, ob eine Datei existiert lokal mit JavaScript nur
Möchte ich überprüfen, ob eine Datei lokal vorhanden ist, wo die HTML-Datei befindet. Es muss JavaScript sein. JavaScript wird nie deaktiviert werden. jQuery ist nicht gut, kann aber tun.
Übrigens, ich mache eine Titan-app für Mac ich bin auf der Suche nach einem Weg zum Schutz meiner Dateien von Leuten, die klicken Sie auf "Paketinhalt zeigen".
Von "lokal" meinst du auf dem client-Rechner? Das heißt, das man mit dem browser. Wenn dem so ist, die Antwort ist Nein — Sie haben keine Datei zugreifen. Aber es ist nicht klar, was du meinst.
Verstehen Sie, wie entsetzlich unsicher ist dies?
ich bin dabei alle meine computer, so dass es nicht auf einem server.
jedenfalls behaupten, dass die Datei wurde entfernt "assets/index.html" ich möchte überprüfen, ob eine Datei existiert, in der Vermögenswerte.
Ajax verwenden, siehe meine Antwort hier: stackoverflow.com/a/14691735/1981050
Verstehen Sie, wie entsetzlich unsicher ist dies?
ich bin dabei alle meine computer, so dass es nicht auf einem server.
jedenfalls behaupten, dass die Datei wurde entfernt "assets/index.html" ich möchte überprüfen, ob eine Datei existiert, in der Vermögenswerte.
Ajax verwenden, siehe meine Antwort hier: stackoverflow.com/a/14691735/1981050
InformationsquelleAutor ExceptionSlayer | 2011-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Frage ist eindeutig, so gibt es mehrere mögliche Antworten, je nach dem, was Sie wirklich versuchen zu erreichen.
Wenn Sie sich weiterentwickeln, wie ich vermute, eine desktop-Anwendung Verwendung von Titan -, dann kann man das FileSystem-Modul ist getFile, um die Datei-Objekt, dann überprüfen, ob es existiert, mit der exists-Methode.
Hier ist ein Beispiel, genommen von der Appcelerator-website:
Überprüfen Sie die getFile-Methode die Referenz-Dokumentation
Und die exists-Methode die Referenz-Dokumentation
Für diejenigen, die dachten, dass er gefragt wurde über einen üblichen Web-Entwicklung-situation, dann thse sind die beiden Antworten, die ich hätte:
1) Sie möchten überprüfen, ob ein server-side-Datei vorhanden ist.
In diesem Fall können Sie mit einem ajax-request versuchen die Datei und reagieren auf die erhaltene Antwort. Obwohl, bewusst sein, dass Sie nur warten können, für Dateien, die ausgesetzt sind, die von Ihrem web-server. Ein besserer Ansatz wäre die Erstellung einer server-side script (z.B. php), das für Sie prüfen, da Sie einen Dateinamen und rufen Sie das script über ajax. Beachten Sie auch, dass Sie könnte sehr leicht erstellen Sie eine Sicherheitslücke in Ihrem Antrag/server, wenn Sie nicht vorsichtig genug sind.
2) Sie möchten überprüfen, ob ein client-side-Datei vorhanden ist.
In diesem Fall, wie bereits Sie von anderen, ist es aus Sicherheitsgründen nicht erlaubt (obwohl IE erlaubt dies in der Vergangenheit über ActiveX und Scripting.Klasse FileSystemObject) und es ist in Ordnung so (niemand will, dass du in der Lage sein zu gehen durch Ihre Dateien), so vergessen Sie diese.
InformationsquelleAutor dSebastien
Da "Kranu' hilfreich berät " Die einzige Interaktion mit dem Dateisystem ist mit laden der js-Dateien . . .', das deutet dabei mit der Fehlerüberprüfung zumindest würde Sie sagen, wenn die Datei nicht nicht vorhanden sein können, für Ihre Zwecke ausreichend?
Vom lokalen Maschine können Sie überprüfen, ob eine Datei muss nicht vorhanden, indem Sie versuchen, laden Sie es als externes script dann die überprüfung für einen Fehler. Zum Beispiel:
Einige Hinweise...
Also das error-Ereignis nicht ausgelöst, bis Sie fügen das element auf das Dokument? Man könnte anfügen, es "out of sight", nehme ich an, aber noch besser wäre es, Sie nicht mit Anhängen an alle, wenn das möglich ist.
Ich habe versucht, diese auf Firefox, mit:
url="c:\\Windows\\Web\\js.js";
, und es gibt immer123 does not exist.
, unabhängig davon, ob die Datei vorhanden ist oder nicht. Ich habe auch versucht:url="file://c:\\Windows\\Web\\js.js";
mit dem gleichen Ergebnis.InformationsquelleAutor Siubear
Können Sie diese
Sie würde es so nennen:
var x=LinkCheck("c:\\Windows\\Web\\Wallpaper\\img1.jpg");
. Dann testen Sie den Wert von x:x ? alert("File Exists") : alert("File Doesn't exist") ;
oderif (x){ alert("File Exists"); } else { alert("File Doesn't exist"); }
. Leider, ich habe versucht, diese auf meinem system und es schlägt fehl, nachdem Sie die Zeile:http.open('HEAD', url, false);
Ich habe auch versucht
var x=LinkCheck("file://c:\\Windows\\Web\\Wallpaper\\img1.jpg");
, und dieser schlägt nach:http.send();
. In beiden Fällen ist der "Fehler" ist, dass es keine Rückkehr aus dem AufrufLinkCheck()
.Danke für die Antwort @Kevin
In der
open
- Anweisung oben gezeigt,false
zeigt "synchronen" Betrieb. Ich rannte über diesem:Note: Starting with Gecko 30.0 (Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27), synchronous requests on the main thread have been deprecated due to the negative effects to the user experience.
XMLHttpRequestInformationsquelleAutor Jess Stone
Javascript keinen Zugriff auf das Dateisystem und prüfen auf die Existenz. Die einzige Interaktion mit dem Dateisystem ist mit laden der js-Dateien und Bilder (png/gif/etc).
Javascript ist nicht die Aufgabe dieses
InformationsquelleAutor Kranu
Glücklicherweise ist das nicht möglich (aus Sicherheitsgründen), um Zugriff auf client-side-Dateisystem mit standard-JS. Einige proprietäre Lösungen gibt, obwohl (wie Microsoft ' s IE-nur ActiveX-Komponente).
InformationsquelleAutor John Manak
Wenn Sie möchten, um zu überprüfen, ob Datei existiert, wird mit javascript dann nicht, soweit ich weiß, javascript hat keinen Zugriff auf die Datei system aus Sicherheits-Gründen..
Aber wie ist es für mich noch nicht klar genug, was sind Sie versuchen zu tun..
InformationsquelleAutor Andrey
Alternative:
Sie können eine "versteckte" element applet implementiert diese existieren-check mit eine privilegierte Aktion-Objekt und setzen Sie Ihre run-Methode von:
InformationsquelleAutor Samsky
Einen Weg, den ich gefunden habe dies zu tun ist, erstellen Sie ein img-tag und legen Sie das src-Attribut auf die Datei, die Sie suchen. Die onload oder onerror im img-element Feuer basieren, ob die Datei vorhanden ist. Sie können nicht laden von Daten mit dieser Methode, aber Sie können bestimmen, ob eine bestimmte Datei vorhanden ist oder nicht.
Wenn es", wie Sie es gefunden, dies zu tun", und andere sagen, dass es nicht funktioniert, würde ich sagen, dass Sie sollten geben Sie den code, damit wir sehen können, wie genau Sie umgesetzt
InformationsquelleAutor MEC
Versuchen Sie dies:
InformationsquelleAutor Samuel Tees