• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

input files[] multiple value ... fakepath von allen Files bekommen

mentizm

Neues Mitglied
Hallo Forum, ich suche nun seit einigen Tagen nach einer gescheiten Lösung. Und ich finde nichts ... und die Lösung die ich habe gefällt mir nicht, dass wäre dann so ein zusammengeschustertes Stück Code, was sehr unschön wäre. Und außerdem bin ich auch sehr daran interessiert vie javascript an die Daten zu kommen ... was doch irgendwie möglich sein muss.

Also was habe ich:
HTML:
<input type="file" inputindex="1" name="1[]" multiple="multiple">

Beispiel ... ich wähle drei Bilder aus: "eins.jpg", "zwei.jpg" und "drei.jpg".

Nun möchte ich das ganze via Ajax und Post auf meinen Server laden das mache mit der Jquery.post (http://api.jquery.com/jQuery.post/) Methode

Nun ist mein Verstand am Ende ... denn die Methode beinhaltet folgendes
>> jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
Bei [, data] werden die Daten hinterelgt, die ich übergeben will. Zum Beispiel: Dateiname, Dateigröße, eine extra Werte, die ich vorher zummengesammelt habe und GANZ WICHTIG der Fakepath der Datei! Und den bekomme ich einfach nicht heraus.

Ich verwende folgenden Jquery-Code um mir den Fakepath ausgeben zu lassen.
Code:
$('input:file'+'[name="0[]"]').val()
Aber ich erhalte immer nur den Path der ersten Datei, die gespeichert wurde ... aus dem Beispiel: "eins.jpg"

Greife ich stattdessen mit $('input...).files auf die FileList drauf zu bekomme ich alle drei Files angezeigt ABER :( ich vermisse dann die Angabe des Fakepaths! Ich verzweifel hier bald und brauche dringen Hilfe!
Hier mal ein Blick auf ein FileObjekt, wo sich keine Angabe über den FakePath befindet ... so wie ich das hier sehe!
Code:
[LIST]
[*][COLOR=#881391]0[/COLOR]: File
[*][COLOR=#881391]  lastModifiedDate[/COLOR]: Tue Oct 30 2012 10:54:49 GMT+0100 (Mitteleuropäische Zeit)
[*][COLOR=#881391]  name[/COLOR]: [COLOR=#C41A16]"eins.jpg"[/COLOR]
[*][COLOR=#881391]  size[/COLOR]: [COLOR=#1C00CF]18528[/COLOR]
[*][COLOR=#881391]  type[/COLOR]: [COLOR=#C41A16]"image/jpeg"[/COLOR]
[*][COLOR=#881391]  webkitRelativePath[/COLOR]: [COLOR=#C41A16]""[/COLOR]
[/LIST]

Danke schonmal für eure Hilfe!
 
Ich bin bei dieser Sache insofern weitergekommen, dass ich jetzt via Ajax durch ein Jquery Plugin die $_POST, sowie $_FILES Arrays mit übertragen bekomme.
Hier der Link zum Plugin: jQuery Form Plugin

Es funktioniert alles einwandfrei. Nur ganz glücklich bin ich nicht. Es muss doch auch irgendwie anders gehen. Also mit durch direktes Auslesen der Daten aus dem FORMULAR oder dem INPUT Element.

Was ich noch festgestellt habe:
Fakepath ist unnütz! Wichtig zum Upload der Datei, also das php: move_uploaded_file(), ist der [tmp_name], der via $_FILES[] übersendet wird. Dort ist der Speicherplatz auf dem Server hinterlegt. Was mir aber auch nicht weitergeholfen hat, denn die .tmp file, die von meinem XAMPP angelegt wird ist RANDOM! Irgendein Name zB. "php0815.tmp". Leider fehlt es mir dann, die einzelnen Dateien auf die RANDOM tmp Dateien zu mappen.

Mir ist da noch was eingefallen. Durch HTML5 wird das Bild ja über das FileReader Objekt zugänglich gemacht, wodurch man mit FileReader.target auf die URL des Bildes zugreifen kann, welche in "data:image/jpeg;base:64,...". Kann ich diese URL auch benutzen um sie an mein PHP-Script weiterzuleiten und das Bild von da aus auf meinem Server hochladen.

Oder habe ich das ganze Prinzip der Javascript Files und des FileReaders nicht verstanden, wenn dem so ist, dann würde ich mich sehr über einen hilfreichen Link zu diesem Thema freuen.

Und bitte, nur weil ich eine Lösung gefunden habe würde ich es bedauern, wenn ihr nicht noch einige andere Lösungsvorschläge geben könntet.

Gruß mentizm
 
Zurück
Oben