Vollständiger Pfad von der Dateieingabe mit jQuery

Wenn ich an einer Eingabe mit type="file" val() erhalte ich nur den Dateinamen und nicht den vollständigen Pfad. Wie kann ich den vollständigen Pfad bekommen?

Sie können nicht: Es ist eine Sicherheitsfunktion in allen modernen Browsern.

Für IE8 ist es standardmäßig deaktiviert , kann aber mithilfe einer Sicherheitseinstellung erneut aktiviert werden:

Wenn eine Datei mit dem Eingabetyp = file -Objekt ausgewählt wird, hängt der Wert der Eigenschaft value vom Wert der Sicherheitseinstellung “Lokalen Verzeichnispfad beim Hochladen von Dateien auf einen Server berücksichtigen” für die Sicherheitszone ab, die zum Anzeigen der Webseite verwendet wird enthält das Eingabeobjekt.

Der vollqualifizierte Dateiname der ausgewählten Datei wird nur zurückgegeben, wenn diese Einstellung aktiviert ist. Wenn die Einstellung deaktiviert ist, ersetzt Internet Explorer 8 das lokale Laufwerk und den Verzeichnispfad durch die Zeichenfolge C: \ fakepath \, um eine unangemessene Offenlegung von Informationen zu verhindern.

In allen anderen gängigen Mainstream-Browsern ist es ebenfalls deaktiviert. Der Dateiname ist der beste, den Sie bekommen können.

Ausführlichere Informationen und gute Links in dieser Frage . Es bezieht sich darauf, den Wert serverseitig zu erhalten, aber das Problem ist in JavaScript vor der Übermittlung des Formulars identisch.

Nun, der vollständige Pfad ist nicht möglich, aber wir können einen temporären Pfad haben.

Versuche dies:

Es gibt Ihnen einen temporären Pfad und nicht den genauen Pfad. Sie können dieses Skript verwenden, wenn Sie ausgewählte Bilder wie in diesem Beispiel anzeigen möchten (Probieren Sie es aus, indem Sie sowohl Bilder als auch andere Dateien auswählen): –

JSFIDDLE

Hier ist der Code: –

HTML: –

   

JS: –

 $('#i_file').change( function(event) { var tmppath = URL.createObjectURL(event.target.files[0]); $("img").fadeIn("fast").attr('src',URL.createObjectURL(event.target.files[0])); $("#disp_tmp_path").html("Temporary Path(Copy it and try pasting it in browser address bar) --> ["+tmppath+"]"); }); 

Es ist nicht genau das, was Sie gesucht haben, aber vielleicht kann es Ihnen irgendwo helfen.

Wie oben angegeben, handelt es sich normalerweise um Erlaubnisprobleme. Versuchen Sie, und verschieben Sie die Datei in einen anderen Bereich und erteilen Sie ihr volle Berechtigungen.

var path = $ (‘# Datei’). attr (“Wert”);