So erhalten Sie den vollständigen Dateipfad bei der Auswahl der Datei mit <input type=‘file’>
<input type="file" id="fileUpload">
<script type="text/javascript">
function getFilePath(){
$('input[type=file]').change(function () {
var filePath=$('#fileUpload').val();
});
}
</script>
Die only name
Datei filePath var enthält jedoch die ausgewählte Datei, nicht die full path
.
Ich habe es im Internet gesucht, aber es scheint, dass Browser (FF, Chrome) aus Sicherheitsgründen nur den Namen der Datei angeben.
Gibt es eine andere Möglichkeit, den vollständigen Pfad der ausgewählten Datei abzurufen?
javascript
jquery
file-upload
filepath
Yogesh Pingle
quelle
quelle
Antworten:
Aus Sicherheitsgründen lassen Browser dies nicht zu, dh JavaScript im Browser hat keinen Zugriff auf das Dateisystem. Bei Verwendung der HTML5-Datei-API stellt jedoch nur Firefox eine
mozFullPath
Eigenschaft bereit. Wenn Sie jedoch versuchen, den Wert abzurufen, wird eine leere Zeichenfolge zurückgegeben:http://jsfiddle.net/SCK5A/
Verschwenden Sie also keine Zeit.
Bearbeiten: Wenn Sie den Dateipfad zum Lesen einer Datei benötigen, können Sie stattdessen die FileReader- API verwenden. Hier ist eine verwandte Frage zu SO: Vorschau eines Bildes, bevor es hochgeladen wird.
quelle
Versuche dies:
Sie erhalten einen temporären Pfad, der nicht den genauen Pfad enthält. Sie können dieses Skript verwenden, wenn Sie ausgewählte Bilder wie in diesem jsfiddle-Beispiel anzeigen möchten (versuchen Sie es, indem Sie Bilder sowie andere Dateien auswählen): -
JSFIDDLE
Hier ist der Code: -
HTML: -
JS: -
Es ist nicht genau das, wonach Sie gesucht haben, aber vielleicht kann es Ihnen irgendwo helfen.
quelle
Sie können dies nicht tun - der Browser lässt dies aus Sicherheitsgründen nicht zu.
Und andere
Sie haben
);
dies am Ende der Änderungsereignisfunktion verpasst .Erstellen Sie auch keine Funktion für Änderungsereignisse, sondern verwenden Sie sie wie folgt:
quelle
D
Verzeichnis, aber der Wert kommtC:\fakepath\test.xls
Das kannst du nicht. Die Sicherheit hindert Sie daran, etwas über das Ablagesystem des Client-Computers zu wissen - möglicherweise hat es nicht einmal eines! Es kann sich um einen MAC, einen PC, ein Tablet oder einen internetfähigen Kühlschrank handeln - Sie wissen es nicht, können es nicht wissen und werden es nicht wissen. Wenn Sie den vollständigen Pfad haben, erhalten Sie möglicherweise Informationen zum Client - insbesondere, wenn es sich beispielsweise um ein Netzwerklaufwerk handelt.
Tatsächlich können Sie es unter bestimmten Bedingungen erhalten, es erfordert jedoch ein ActiveX-Steuerelement und funktioniert unter 99,99% der Umstände nicht.
Sie können es ohnehin nicht verwenden, um die Datei am ursprünglichen Speicherort wiederherzustellen (da Sie absolut keine Kontrolle darüber haben, wo Downloads gespeichert werden oder selbst wenn sie gespeichert werden), sodass es in der Praxis für Sie ohnehin nicht sehr nützlich ist.
quelle
Meinten Sie das?
quelle
Sie können den folgenden Code verwenden, um eine funktionierende lokale URL für die hochgeladene Datei abzurufen:
quelle
Ein interessanter Hinweis: Obwohl dies im Web nicht verfügbar ist, können Sie dies tun, wenn Sie JS in Electron verwenden.
Bei Verwendung der Standard-HTML5-Dateieingabe erhalten Sie eine zusätzliche
path
Eigenschaft für ausgewählte Dateien, die den tatsächlichen Dateipfad enthält.Vollständige Dokumente hier: https://github.com/electron/electron/blob/master/docs/api/file-object.md
quelle
Sie können, wenn das Hochladen eines gesamten Ordners eine Option für Sie ist
Änderungsereignis enthält:
quelle
Sie sollten dies niemals tun ... und ich denke, es ist nutzlos, es in den neuesten Browsern zu versuchen (soweit ich weiß) ... alle neuesten Browser hingegen werden dies nicht zulassen ...
Einige andere Links, die Sie durchgehen können, um eine Problemumgehung zu finden, z. B. das Abrufen des Werts auf der Serverseite, jedoch nicht auf der Clientseite (Javascript).
Vollständiger Pfad von der Dateieingabe mit jQuery
So erhalten Sie den Dateipfad vom HTML-Eingabeformular in Firefox 3
quelle
Das Dateielement hat und der Array-Aufruf
files
enthält alle notwendigen Dinge, die Sie benötigenquelle
Sie können den vollständigen Pfad der ausgewählten Datei nur von IE11 und MS Edge hochladen.
quelle