Dateiname und -pfad bei Drag&Drop in Webseite


StormChaser

Mitglied
Hallo,

auf meiner lokalen Webseite http://localhost habe ich mehrere Elemente, die als DropTarget gelten.
Nun möchte ich per Drag & Drop Dateien aus dem (Windows-)Dateisystem auf eines dieser Elemente ziehen.
Aber es soll kein FileUpload sein (da gibt's auch tonnenweise Infos zu), sondern ich benötige den Pfad und den Namen der gezogenen Datei.
Und das brauche ich im JavaScript, um die src eines Videoelementes neu zu setzen (so, jetzt ist es raus :) )

Zwar kann ich bereits beim Draggen das Zielelement bestimmen und die ID ermitteln, doch beim Drop der MP4-Datei erzeugt Chrome eine vollständige neue Seite (head, body mit video-Element) und spielt das Video ab.

Ich möchte das Video aber nur im vorgesehenen Element sehen.
Hat da jemand eine Idee zu, wie das zu realisieren ist ?
 

ComFreek

Mod | @comfreek
Moderator
Und das brauche ich im JavaScript, um die src eines Videoelementes neu zu setzen (so, jetzt ist es raus :) )
Möchtest du das src-Attribut auf eine file:/// URI setzen? Ich glaube, das sollte aus Sicherheitsgründen eh nicht gehen. Mit einer kleinen browserabhängigen Chance geht das vielleicht von einer von file:/// "ausgelieferten" URI selbst, aber da du ja via http://localhost zugreifst, ist das ausgeschlossen.
 

StormChaser

Mitglied
ok, also "freie Platzwahl" der Herkunft ist dann wohl ausgeschlossen.
Schränke ich aber die Herkunft auf bekannte Ordner ein (ich bin ja auf einem System, dessen Struktur mir bekannt ist), kann ich aus den absoluten Pfaden relative bauen, die dann als src eingesetzt werden können.

Wenn also die Herkunft bekannt ist - und genau das fehlt mir ja - könnte ich das Video in einem vorher definierten Element abspielen statt auf einer von Chrome angelegten eigenen Seite.
 

StormChaser

Mitglied
Ok, momentan geht das Herausziehen nur aus dem Ordner, den ich als WebOrdner konfiguriert habe. Wie es mit mehreren steht, muss ich bei Gelegenheit mal ausprobieren.

Das Ablegen in einem Element funktioniert jetzt; abgespielt wird das Video im dort definierten Videoelement.

Ganz viel Infos dazu fand ich hier; entscheidend war das
evt.dataTransfer.files, was mir den Dateinamen liefert.

Wie ich mir das vorgestellt hatte (abgesehen von der Einschränkung der Herkunft) sieht man in diesem Video, das ich eben auf die Schnelle erstellt habe. Erkennbar, dass es noch einen Fehler bei der ID-Berechnung gibt, aber das sind Marginalien.