Gremlin: HTML 5 Datei upload

Hallo, ich will mittels drag'n'drop eine Datei auf den Server hochladen. Folgenden code habe ich bereits. Ich frage mich jetzt, ob es eine einfache Möglichkeit gibt, diese Datei jetzt in irgend ein Verzeichnis auf dem Server zu kopieren? Kann dazu leider keine Informationen finden. Alle Beispiele die ich finde, zeigen einfach nur ein hochgeladenes Bild im Browser an...

ondrop = function(e){  
  
 var file = e.dataTransfer.files[0];  
  
		 reader = new FileReader();  
		  reader.onload = function (event) {  
			  
			  
		    test.style.background = 'url(' + event.target.result + ') no-repeat center';  
		  
		  };  
		  
		  
		  reader.readAsDataURL(file);
  1. Ich frage mich jetzt, ob es eine einfache Möglichkeit gibt, diese Datei jetzt in irgend ein Verzeichnis auf dem Server zu kopieren?

    Einfach? Nein. Sowohl clientseitig als auch serverseitig brauchst du eine recht komplexe Logik. Die Datei wird letztlich mit einem HTTP-Request übertragen. Diesen musst du serverseitig verarbeiten. Welche Möglichkeiten stehen dir dort zu Verfügung?

    Kann dazu leider keine Informationen finden.

    »HTML5 File Upload« wäre das Stichwort.

    In </archiv/2011/3/t204009/#m1380767> habe ich die verschiedenen Techniken beschrieben. Siehe auch diese Präsentation, welche einen Überblick gibt.

    FormData ist dabei die einfachste Technik, aber nicht von allen Browser(-versionen) unterstützt.

    Mathias

    1. Also die Sache ist die: Ich bin eigentlich Java Programmierer (das Backend ist Java) und habe nicht so den Durchblick in Javascript. Am besten wäre es natürlich, wenn ich einfach den Pfad der Datei ermitteln könnte, dann könnte ich mir einfach in Java ein File Objekt erzeugen und damit arbeiten.

      Aber so wie ich das sehe ist, das nicht so einfach (bzw. nicht möglich - außer im firefox ist der pfad ja angegeben), den Pfad der Datei auszulesen? Oder gibts da noch irgend einen Trick/Workaraound für?

      Ich frage mich jetzt, ob es eine einfache Möglichkeit gibt, diese Datei jetzt in irgend ein Verzeichnis auf dem Server zu kopieren?

      Einfach? Nein. Sowohl clientseitig als auch serverseitig brauchst du eine recht komplexe Logik. Die Datei wird letztlich mit einem HTTP-Request übertragen. Diesen musst du serverseitig verarbeiten. Welche Möglichkeiten stehen dir dort zu Verfügung?

      Kann dazu leider keine Informationen finden.

      »HTML5 File Upload« wäre das Stichwort.

      In </archiv/2011/3/t204009/#m1380767> habe ich die verschiedenen Techniken beschrieben. Siehe auch diese Präsentation, welche einen Überblick gibt.

      FormData ist dabei die einfachste Technik, aber nicht von allen Browser(-versionen) unterstützt.

      Mathias

      1. Am besten wäre es natürlich, wenn ich einfach den Pfad der Datei ermitteln könnte, dann könnte ich mir einfach in Java ein File Objekt erzeugen und damit arbeiten.

        Du kannst den Pfad ggf. ermitteln, aber was hast du davon? Du kannst nicht einfach vom Server aus auf das Dateisystem des Clients zugreifen.
        Oder doch? Ist das ein Intranet und der Server hat Dateizugriff auf die Clients?
        Wenn nicht: muss die Datei wie gesagt per HTTP zum Server übertragen werden.

        Mathias

        1. Du kannst den Pfad ggf. ermitteln, aber was hast du davon? Du kannst nicht einfach vom Server aus auf das Dateisystem des Clients zugreifen.

          So wie ich das verstehe will er die Datei auf dem Server hochladen und dann in ein Verzeichnis auf dem Server kopieren.

          1. So wie ich das verstehe will er die Datei auf dem Server hochladen und dann in ein Verzeichnis auf dem Server kopieren.

            Mit FileReader, FormData und XMLHttpRequest kann man Multipart-MIME-Requests erzeugen ganz genauso wie es ein <http://de.selfhtml.org/html/formulare/datei_upload.htm#definieren@title=herkömmliches Datei-Upload-Feld> macht. Wie man das dann serverseitig in Java verarbeitet, weiß ich nicht.

            Den Pfad der Datei auf dem Clientrechner braucht man dazu allerdings zu keinem Zeitpunkt, noch könnte man mit dem auf der Serverseite etwas anfangen – die Datei bekommt man ja per HTTP-Request geliefert. Man bekommt lediglich den Dateinamen mitgeliefert.

            Mathias

            1. Hi,

              Man bekommt lediglich den Dateinamen mitgeliefert.

              ebenso beim Zugriff mit js auf input type=file...

              Gruesse, Joachim

              --
              Am Ende wird alles gut.