Verzeichnisauswahl auf der HTML-Seite

Lesezeit: 5 Minuten

Wie kann ich eine Verzeichnisauswahl auf einer HTML-Seite erstellen?
Wenn ich das Eingabedateielement verwende, kann ich nur die Datei auswählen, aber ich muss stattdessen das Verzeichnis auswählen.
Ich muss dies tun, weil der Benutzer einen richtigen Pfad in seinem Computer auswählen sollte.
Irgendwelche Lösungen?

  • Es ist jetzt mit HTML5 möglich, zumindest in Chrome: stackoverflow.com/questions/24718769/…

    – mtyson

    30. September 2016 um 13:57 Uhr

  • Bitte beachten Sie diesen Link: Geben Sie hier die Linkbeschreibung ein

    – hhaseli

    18. Oktober 2020 um 16:23 Uhr

Verzeichnisauswahl auf der HTML Seite
Rabendra007

Versuchen Sie dies, ich denke, es wird für Sie funktionieren:

<input type="file" webkitdirectory directory multiple/>

Die Demo dazu finden Sie unter https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3 und wenn Sie weitere Informationen benötigen, finden Sie diese hier.

  • Ich habe den Eindruck, dass Ihr Vorschlag zum Hochladen des Ordners funktioniert und nicht seinen Pfad erhält.

    – Die Auferstehung Lazarus

    11. März 2016 um 9:12 Uhr

  • developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/… zur Dokumentation. Es wird genannt non-standard. Und es lädt die enthaltenen Dateien effektiv rekursiv hoch (?), wobei auch der Ordnername offengelegt wird. Dies reicht für die meisten Fälle aus

    – phil294

    4. März 2017 um 9:26 Uhr


  • @SamithaChathuranga funktioniert jetzt in Chrome, zumindest ab Version 65

    – XLM

    1. November 2018 um 2:46 Uhr

Verzeichnisauswahl auf der HTML Seite
Pekka

Aus Sicherheitsgründen nicht in reinem HTML/JavaScript möglich.

Das Auswählen einer Datei zum Hochladen ist das Beste, was Sie tun können, und selbst dann erhalten Sie in modernen Browsern nicht den vollständigen ursprünglichen Pfad.

Möglicherweise können Sie etwas mit Java oder Flash zusammenstellen (z. B. mit SWF-Upload als Grundlage), aber es ist viel Arbeit und bringt zusätzliche Kompatibilitätsprobleme mit sich.

Ein anderer Gedanke wäre, eine zu öffnen iframe zeigt die des Benutzers C: Laufwerk (oder was auch immer), aber selbst wenn das heutzutage möglich ist (könnte aus Sicherheitsgründen blockiert werden, habe es lange nicht versucht), wird es für Ihre Website unmöglich sein, mit dem Iframe zu kommunizieren (wiederum aus Sicherheitsgründen).

Wozu brauchst du das?

  • Ich brauche es, um einen Pfad im Computer auszuwählen, nicht zum Hochladen. Ich verwende diesen Pfad zum Speichern der Datei, jedoch mit JSP-Funktion.

    – fixieren

    11. Mai 2010 um 10:14 Uhr

  • @enfix Wie speichern Sie eine Datei von einem JSP-Server in einem bestimmten Pfad auf dem lokalen Computer des Benutzers? Ich verstehe nicht. Können Sie Ihre Frage bearbeiten, um sie zu verdeutlichen?

    – Pekka

    11. Mai 2010 um 10:15 Uhr


  • Ich muss den Pfad abrufen, in dem der Benutzer Dateien speichern möchte, aber die Dateien werden mit dem Java-Funktionsaufruf innerhalb der JSP-Seite gespeichert. Diese Funktion benötigt einen Pfad zum Speichern von Dateien. Das ist alles. Ich speichere mehr als eine Datei, ich muss Ordner und andere Dinge mit dieser Java-Funktion erstellen.

    – fixieren

    11. Mai 2010 um 10:26 Uhr

  • @enfix Sie können keine Datei vom Server auf dem Computer des Clients speichern. Es ist völlig unmöglich. Sie müssten die Datei als regulären Dateidownload bereitstellen, und der Browser bietet dem Benutzer dann an, das Verzeichnis auszuwählen, in dem die Datei gespeichert werden soll. Das liegt jedoch völlig außerhalb Ihrer Kontrolle. Sie können diesen Teil des Prozesses nicht beeinflussen.

    – Pekka

    11. Mai 2010 um 10:57 Uhr

  • @Pekka웃 was spielt es für eine Rolle, wofür er es braucht

    – Benutzer3808307

    15. August 2019 um 17:28 Uhr

1646176328 393 Verzeichnisauswahl auf der HTML Seite
Levon

Falls Sie der Server und der Benutzer sind (z. B. wenn Sie eine App erstellen, die über den Browser funktioniert und Sie einen Ordner auswählen müssen), versuchen Sie anzurufen JFileChooser vom Server, wenn im Browser auf eine Schaltfläche geklickt wird

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("select folder");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);

Dieser ausgeschnittene Code stammt von hier

Scripting ist unvermeidlich.

Dies wird aufgrund des Sicherheitsrisikos nicht bereitgestellt. <input type="file" /> ist am nächsten, aber nicht das, wonach Sie suchen.

Kasse dieses Beispiel die Javascript verwendet, um zu erreichen, was Sie wollen.

Wenn das Betriebssystem Windows ist, können Sie verwenden VB-Skripte um auf die Kernsteuerdateien zuzugreifen, um nach einem Ordner zu suchen.

Ich habe eine Arbeit herum gemacht. Ich hatte ein verstecktes Textfeld, um den Wert zu halten. Dann habe ich bei form_onsubmit den Pfadwert abzüglich des Dateinamens in den versteckten Ordner kopiert. Setzen Sie dann das fileInput-Feld auf “”. Auf diese Weise wird keine Datei hochgeladen. Ich erinnere mich nicht an das Ereignis des fileUpload-Steuerelements. Vielleicht ändern. Es ist eine Weile her. Wenn es einen Wert gibt, parse ich den Dateinamen und lege den Ordner zurück in die Box. Natürlich würden Sie die Datei als gültige Datei validieren. Dadurch erhalten Sie den Arbeitsstationsordner des Clients.
Wenn Sie jedoch Serverpfade widerspiegeln möchten, erfordert dies einen ganz anderen Codierungsansatz.

  • Der Benutzer müsste geschult werden, um eine beliebige Datei auszuwählen. Es ist heikel. Aber, funktioniert in einer Prise. Fügen Sie dem FileUpload-Steuerelement and onchange=”parseFilePath()” hinzu. function parseFileUploadPath() { var upl = document.getElementById(“<%=this.FileUpload1.ClientID%>“); if (upl.value != “”) { var pos = upl.value.lastIndexOf(“\\”) document.getElementById(“<%=this.TextBox1.ClientID%>“).value = upl.value.substr (0,pos) } }

    – Benutzer8004777

    12. Mai 2017 um 20:03 Uhr


  • Entschuldigung, vollständigerer HTML-Code.

    – Benutzer8004777

    12. Mai 2017 um 20:07 Uhr

1646176329 395 Verzeichnisauswahl auf der HTML Seite
Hell

Ab 2022 gibt es nun eine Verzeichnisauswahl-API:

https://developer.mozilla.org/en-US/docs/Web/API/Window/showDirectoryPicker

async function getDir() {
  const dirHandle = await window.showDirectoryPicker();

  // run code for dirHandle
}

  • Der Benutzer müsste geschult werden, um eine beliebige Datei auszuwählen. Es ist heikel. Aber, funktioniert in einer Prise. Fügen Sie dem FileUpload-Steuerelement and onchange=”parseFilePath()” hinzu. function parseFileUploadPath() { var upl = document.getElementById(“<%=this.FileUpload1.ClientID%>“); if (upl.value != “”) { var pos = upl.value.lastIndexOf(“\\”) document.getElementById(“<%=this.TextBox1.ClientID%>“).value = upl.value.substr (0,pos) } }

    – Benutzer8004777

    12. Mai 2017 um 20:03 Uhr


  • Entschuldigung, vollständigerer HTML-Code.

    – Benutzer8004777

    12. Mai 2017 um 20:07 Uhr

1646176330 140 Verzeichnisauswahl auf der HTML Seite
ochola alfred

Wenn Sie nicht zu viele Ordner haben, schlage ich vor, dass Sie if-Anweisungen verwenden, um einen Upload-Ordner abhängig von den Benutzereingabedetails auszuwählen. Z.B

String user= request.getParameter("username");
if (user=="Alfred"){
//Path A;
}
if (user=="other"){
//Path B;
}

905850cookie-checkVerzeichnisauswahl auf der HTML-Seite

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy