nxclass
Goto Top

Fileupload mit HttpRequest

Hallo,

ich habe mir bereits Funktionen / Objekte geschrieben die mir die normalen Formular Elemente auslesen und an anderer Stelle per HttpRequest absenden.

Jetzt fehlt mir allerdings nur noch die Möglichkeit auch eine Datei / Dateiinhalt mit abzusenden.

z.Z. benutze ich diesen Code zum erstellen / senden der Anfrage:
var oXHReq = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");  
...
oXHReq.open("POST", sUrl, true);  
oXHReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
oXHReq.setRequestHeader("Content-length", sParam.length);  
oXHReq.setRequestHeader("Connection", "close");  
...
oXHReq.send(sParam);

Wie müsste ich das abändern? (der Content-type sollte dann natürlich 'multipart/form-data' sein)

Wie komme ich an die Daten einer Datei auf dem Client?

schon mal vielen Dank für Eure Antworten!

Content-Key: 117271

Url: https://administrator.de/contentid/117271

Printed on: April 24, 2024 at 22:04 o'clock

Member: dog
dog Jun 02, 2009 at 14:47:35 (UTC)
Goto Top
Wie komme ich an die Daten einer Datei auf dem Client?

Haha, du bist mir ein Scherzkeks.
Denkst du ein Browser würde dir den Datenklau so leicht machen?

Es gibt in HTML nur ein Element was auf lokale Daten zugreifen kann (von Plugins mal abgesehen) und das ist <input type="file" /> und dessen Wert darf nur von einem Benutzer gesetzt werden.

Also: Per AJAX Daten hochzuladen geht nicht. Wenn du es unbedingt asynchron haben willst musst du einen iframe benutzen.

Grüße

Max
Member: nxclass
nxclass Jun 02, 2009 at 17:54:47 (UTC)
Goto Top
habe es mir schon fasst gedacht ..

Und eine (im XMLHttpRequest Objekt) integrierte Funktion kann das auch nicht ? - schließlich wird in einem normalen Formular mit dem type="file" auch nur vom Browser die Daten ausgelesen und gesendet.

PS: sorry für das:
"Wie komme ich an die Daten einer Datei auf dem Client?"

face-wink
Member: dog
dog Jun 02, 2009 at 21:14:40 (UTC)
Goto Top
Nein, mit XMLHttpRequest geht es nicht.
Entweder du benutzt iframes oder ein Flash-Plugin (wie z.b. flickr) für den Upload.
Member: nxclass
nxclass Jun 03, 2009 at 06:14:05 (UTC)
Goto Top
OK,
da währe der javascript Part also 'abgehackt'.
Obwohl ich kein Fan von Flash (und javascript) bin werde ich mir das 'flickr' mal anschauen.

vielen Dank