Andy Nail: Aus input type File auch das Verzeichnis erfahren können

Hallo zusammen

mit einem File Objekt biete ich ja die Möglichkeit irgendwo auf der Festplatte eine Datei auszuwählen und damit auch verarbeiten zu können. Und die Datei-Auswahl soll auch in einem Textfeld angezeigt werden, was aber nicht funktionieren will:

<div style="position:relative; margin-top:-30px; padding-left:10px"><input id="BildBtn" type="file" title="Bilder anstelle des Textes anzeigen" class="fileUpload" size="100" onchange="document.LinkDaten.Bild.value = $('#BildBtn').val()"/></div>

Denn da steht dann im Textfeld als Ergebnis beispielsweise C:\fakepath\Eigenaufnahme.jpg, also kein Verzeichnisname.

Also ist das dann nicht möglich, oder wenn doch dann bitte ich Euch mir das zu zeigen, wofür ich mich bereits jetzt für jegliche Mühe bedanke.

Also dann vielen Dank mit Gruß Andreas

  1. Ich habe kein Interesse daran jemanden zu verraten wo diese Datei auf meinem System liegt. Das lässt nur potentiell mehr Daten durchsickern als nötig. So sehen das wohl auch die meisten Benutzer und Entwickler, darum machen Browser das einfach nicht. Wenn du das brauchst, um den Pfad zwischen zwei deiner eigenen Systeme auszutauschen, solltest du deinen Browser entsprechend konfigurieren (falls möglich). Aber es ist sinnvoller zu ergründen, wozu du den Pfad überhaupt haben willst, auf dem Zielsystem kannst du damit ja nichts mehr anfangen.

    1. OK Hallo

      ist ja OK dass man nichts auf der Seite von seinem PC freigeben will. Aber wenn man schon von irgendwo auf der Festplatte eine Datei auswählen kann, wäre das doch auch schön, wenn ich das dann auch kontrollieren könnte! Und so will ich die Datei mit ihrem Pfad in einem Textfeld anzeigen und will einfach nicht weiterkommen! Denn es gibt ja auch die Möglichkeit Dateien kopieren zu können, und so versuche ich es seit neustem mit solch einer Funktio:

      var file = document.LinkDaten.BildBtn.files[0];
      var fr = new FileReader();
      fr.onload = function(e){
      if (e.target.readyState == FileReader.DONE) {
           document.LinkDaten.Bild.value = e.target.result.split(",")[1];}
      };
      
      fr.readAsDataURL(file);
      

      Doch auch hier erhalte ich im Textfeld irgendwelches Zeichengedöns, doch nichts was nach dem Thema aussehen könnte.

      Also nochmals die Bitte um Hilfe und Danke dafür

      Gruß Andreas

      1. Hallo,

        ich habe da auch schon gesucht. Über <input type="file"> und die FileReader-API kommst du an die Inhalte, nicht aber an den Pfad der Datei.

        Gruß
        Jürgen

      2. Tach!

        ist ja OK dass man nichts auf der Seite von seinem PC freigeben will. Aber wenn man schon von irgendwo auf der Festplatte eine Datei auswählen kann, wäre das doch auch schön, wenn ich das dann auch kontrollieren könnte!

        Möchtest du eine Desktop- oder eine Web-Anwendung erstellen? Letztere ist nun mal auf die Bedürfnisse des Webs eingeschränkt.

        dedlfix.

        1. Jo Hallo

          und wie könnte das nun möglich werden? Wenn irgendwelche Einstellungen notwendig sind? Aber wieso lese ich dann auch einfach davon wie es möglich wird?

          Hallo, gerne qürde ich mein Vorhaben erreichen können und bitte Euch um weitere Hilfe!

          Also Danke Gruß Andreas

          1. Hallo,

            es ist nicht einfach, mit dir zu kommunizieren. Du antwortest nicht auf Rückfragen, sondern stellst munter weitere neue und alte, umformulierte Fragen.

            Aber wieso lese ich dann auch einfach davon wie es möglich wird?

            Woher sollen wir wissen, warum du davon liest? Du könntest damit anfangen, uns zu erzählen, wo du davon liest.

            Gruß
            Kalk

          2. Tach!

            und wie könnte das nun möglich werden?

            Ich befürchte, gar nicht.

            Wenn irgendwelche Einstellungen notwendig sind?

            Die Browser setzen mit der File API ja schon Hürden, dass eine Anwenderhandlung notwendig ist, um eine Datei auszuwählen. Der Anwender weiß also bereits, welchen Pfad er genommen hat. Die Webanwendung muss den im Prinzip nicht kennen, der Inhalt sollte reichen. Und Speichern geht ja sowieso nicht.

            Aber wieso lese ich dann auch einfach davon wie es möglich wird?

            Ich verstehe den Satz vermutlich nicht richtig.

            Hallo, gerne qürde ich mein Vorhaben erreichen können und bitte Euch um weitere Hilfe!

            Das glaube ich dir, aber wenn die Browser da nicht mitspielen, gehts eben nicht.

            dedlfix.

            1. Hallo

              … Und Speichern geht ja sowieso nicht.

              Speichern geht schon, aber nicht über die FileReader-API, sondern über den Downloadmechanismus.

              @Andy Nail Auch wenn du es gerne möchtest, über den FileReader (und auch sonst) kommst du nicht an den Pfad heran. Das haben zumindestens meine Recherchen ergeben.

              Gruß
              Jürgen

              1. ja, manuell: Popup kommt, ich such mir ein Verzeichnis aus. Aber der Server bekommt davon rein garnichts mit, falls ich den Download überhaupt akzeptiere.

          3. und wie könnte das nun möglich werden?

            Ich sehe nur eine Möglichkeit: biete dem User ein Eingabefeld an, in dem er den Pfad manuell eintragen kann.

            1. Hallo,

              Ich sehe nur eine Möglichkeit: biete dem User ein Eingabefeld an, in dem er den Pfad manuell eintragen kann.

              Und dann der normale Windowsbenutzer so: "Was ist ein Dateipfad?"

              Gruß
              Kalk

              1. Ich sehe nur eine Möglichkeit: biete dem User ein Eingabefeld an, in dem er den Pfad manuell eintragen kann. Und dann der normale Windowsbenutzer so: "Was ist ein Dateipfad?"

                Stimmt! Da sollten dann auf jeden Fall noch drei Video-Tutorials dazu, die das erklären: Windows Mac OS und Linux. Zusätzlich noch ein Tutorial für iOs, das erklärt, wie man das aktuelle Jailbreak installiert, um an den physikalischen Pfad zu kommen.

                1. Hallo Mitleser,

                  Zusätzlich noch ein Tutorial für iOs, das erklärt, wie man das aktuelle Jailbreak installiert, um an den physikalischen Pfad zu kommen.

                  Es gibt einen Jailbreak für das aktuelle iOS (10.3.2)?

                  LG,
                  CK

                  1. Es gibt einen Jailbreak für das aktuelle iOS (10.3.2)?

                    Keine Ahnung, ich verfolge das nicht. Mir war nur gerade danach, ein wenig Blödsinn von mir zu geben ;-)

              2. Hallo Tabellenkalk,

                Und dann der normale Windowsbenutzer so: "Was ist ein Dateipfad?"

                Und dann der iOS-Nutzer so: „Dateipfad? Sowas gibts hier nicht.“

                LG,
                CK

                1. Hello,

                  alternativ könnte man auch IE <= 3 verlangen auf dem Client. Da war das alles noch möglich! ;-P

                  Liebe Grüße
                  Tom S.

                  --
                  Es gibt nichts Gutes, außer man tut es
                  Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                  1. alternativ könnte man auch IE <= 3 verlangen auf dem Client. Da war das alles noch möglich! ;-P

                    AFAIR hat der 6er auch noch dem kompletten Pfad übermittelt.

                    1. Hallo Mitleser,

                      alternativ könnte man auch IE <= 3 verlangen auf dem Client. Da war das alles noch möglich! ;-P

                      AFAIR hat der 6er auch noch dem kompletten Pfad übermittelt.

                      Und falls nicht hat er genug Sicherheitslücken, um trotzdem an ihn ranzukommen 😂

                      LG,
                      CK

                    2. Hello,

                      alternativ könnte man auch IE <= 3 verlangen auf dem Client. Da war das alles noch möglich! ;-P

                      AFAIR hat der 6er auch noch dem kompletten Pfad übermittelt.

                      Da müsste ich mal wieder das Museum anschmeißen... Dann könnte ich es feststellen. Lief der noch auf Win 3.1 oder brauchte der "schon" Win95?

                      BTW:
                      Das Forum könnte eine Funktion gebrauchen, mit der man ganz leicht (Markieren und Button drücken) Fachbegriffe für das Glossar vorschlagen könnte. "Jailbreak" fiel mir hier auf. Und neulich "Session". Ich wollte das ergänzen, aber irgendwie hat es noch nicht geklappt. Und wenn die Funktion so schlau wäre, dass sie Begriffe des Glossars im Posting automatisch verlinkt ... das wäre einfach göttlich :-)

                      Und um das Glossar zu finden, muss ich jedes Mal erst suchen. Das sollte doch ganz vorne stehen im Wiki, um erstmal die Vokablen abzuklären?! Von dort aus kann es dann in die Artikel usw. gehen...

                      Liebe Grüße
                      Tom S.

                      --
                      Es gibt nichts Gutes, außer man tut es
                      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                      1. AFAIR hat der 6er auch noch dem kompletten Pfad übermittelt.

                        Da müsste ich mal wieder das Museum anschmeißen... Dann könnte ich es feststellen.

                        WTF? Wobei, lustige Freizeitbeschäftigung! Da musste ich gerade direkt an "Installing from Windows 1 to Windows 10" denken :-)

                        Lief der noch auf Win 3.1 oder brauchte der "schon" Win95?

                        Wikipedia sagt: Operating system: Windows NT 4.0, Windows 98, Windows ME, Windows 2000 Included with: Windows XP, Windows Server 2003 and Windows Home Server

                        1. Hello,

                          das erinnert mich daran, dass der Bundetag heute auch über "Digitalisierung" und ggf. notwendige Gesetze dazu debattiert. Ich habe heute früh ein paar Passagen auf Phönix genossen. Dabei musste ich doch feststellen, dass die Redner nur vorformulierte Statements abgegeben haben und sogar ich wesentlich mehr Sachkenntnis hätte zum Thema. Und ich bin auch schon kurz vor Scheintot. ;-O

                          Liebe Grüße
                          Tom S.

                          --
                          Es gibt nichts Gutes, außer man tut es
                          Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                  2. alternativ könnte man auch IE <= 3 verlangen auf dem Client. Da war das alles noch möglich! ;-P

                    Nein. Upload war erst ab Version 3.2 möglich und dazu musste ein extra Plugin installiert werden.

                    1. Toll Jungs

                      und wie komme ich jetzt zu meinem Thema zurück, die Fußgängerzone in München ohne Weißbier? Mag ja sein Dass jetzt keiner mehr antwortet?

                      Aber trotzdem stell ich mal die Frage, wozu es denn dann überhaupt den Befehl readAsDataURL gibt?

                      Also auf ein Neues! Danke Gruß Andreas

                      1. Hallo

                        Aber trotzdem stell ich mal die Frage, wozu es denn dann überhaupt den Befehl readAsDataURL gibt?

                        ich vermute mal, um die Daten als DataURL zu lesen und weiter zu verarbeiten. So mache ich es. Und um auf dein Thema zurück zu kommen: der Pfad wird hierzu nicht benötigt.

                        Gruß
                        Jürgen

                        1. Hallo

                          und OK, Danke. Aber sollte das denn somit nicht auch eine Verwendung für mich haben können? Denn wenn Du die Daten weiterverarbeiten kannst, wieso soll ich sie nicht darstellen können? Oder kommts auf den Verwendungszweck an, worin meiner ja nichts schlimmes sein sollte! Und für den readasDataURL braucht man ja auch erst einmal eine Datei, so dass ich das file Objekt nehme. Also hätte dann jemand noch eine Idee≠

                          Dann will ich mich schon mal _Bedanken! Mit Gruß Andreas

                          1. Tach!

                            Aber sollte das denn somit nicht auch eine Verwendung für mich haben können? Denn wenn Du die Daten weiterverarbeiten kannst, wieso soll ich sie nicht darstellen können?

                            Du kannst die mit readAsDataURL() gelesenen Daten einem img.src zuweisen, genauso wie dun dem eine data-URL hättest als Attributwert notieren können. Das ist beides nichts, wofür man einen Pfad braucht.

                            Nochmal deutlich: Du brauchst in Browser-Anwendungen keinen Dateipfad. Deswegen und aus Sicherheitsgründen gibt ihn dir kein Browser. Falls es doch eine Möglichkeit geben sollte, wäre das eine Sicherheitslücke, die gestopft werden würde.

                            Wenn du einen Anwendungsfall hast bei dem du um den Pfad nicht umhinkommst, dann ist eine Webanwendung kein geeignetes Werkzeug, dann brauchst du eine Desktopanwendung.

                            dedlfix.