7 Stimmen

HTML5 Dateien und FileLists Pfad

Ich frage mich, wo der Dateipfad in einem File-Objekt in HTML-Javascript gespeichert ist.

Ich habe die Webkit DevTools verwendet und folgendes erhalten:

FileList
0: File
    fileName: "script.js"
    fileSize: 71268
    name: "script.js"
    size: 71268
    type: "application/x-javascript"
    __proto__: File
length: 1
__proto__: FileList

Der Dateiname, die Größe und die Dateitypen sind vorhanden (weiß jemand, warum Name und Größe 2 Variablen haben?), aber der Pfad ist nicht vorhanden.

Gibt es eine Möglichkeit, den Pfad der Datei zu finden, und wenn nicht, wie der Browser und Javascript lesen die Datei (wie POST-Methoden & Bestimmung des Typs und der Größe)?

8voto

Marcel Korpel Punkte 21267

Wie Sie in der WHATWG HTML-Spezifikation ,

[f]ür historische Gründe, die Wert Das IDL-Attribut stellt dem Dateinamen ein Präfix voran mit der Zeichenkette " C:\fakepath\ ". Einige älteren Benutzeragenten enthielten tatsächlich den vollständigen Pfad (was eine Sicherheitslücke Schwachstelle).

Weiter lesen MDC können wir sehen, dass Mozillas Implementierung des File-Objekts eine (nicht standardisierte) Eigenschaft namens mozFullPath mit

[d]er vollständige Pfad des referenzierten Datei; nur verfügbar für Code mit UniversalFileRead-Berechtigungen in Chrom.

Diese Seite beantwortet auch Ihre Frage nach den redundanten Daten im File-Objekt: properties fileName y fileSize sind veraltet. Sehen Sie sich auch die W3C's Datei-API-Arbeitsentwurf , wo diese nicht erwähnt werden.

Um den zweiten Teil Ihrer Frage zu beantworten:

wenn nicht, wie funktioniert der Browser und JavaScript die Datei lesen (z. B. POST Methoden & Bestimmung des Typs und der Größe)?

Natürlich kann intern auf den vollständigen Dateipfad zugegriffen werden (und er wird in mehreren Browsern dem Benutzer angezeigt), aber JavaScript-Skripte, die in einer Webseite ausgeführt werden, haben keinen Zugriff darauf.

Übrigens, vor einigen Jahren gab es eine Diskussion über dieses Thema in der WHATWG-Mailingliste .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X