Senden multipart/formdata mit jQuery.ajax

Ich habe ein problem beim senden einer Datei an eine serverseitige PHP-Skript mithilfe von jQuery-ajax-Funktion.
Es ist möglich, um die Datei-Liste mit $('#fileinput').attr('files') aber wie ist es möglich, zum senden dieser Daten an den server? Das resultierende array ($_POST) auf der serverside php-Skript ist 0 ( NULL ), wenn das Datei-input.

Ich weiß, es ist möglich (obwohl ich nicht alle jQuery-Lösungen, bis jetzt, nur Prototye-code (http://webreflection.blogspot.com/2009/03/safari-4-multiple-upload-with-progress.html)).

Diese scheint relativ neu zu sein, also bitte nicht zu erwähnen, Datei-upload unmöglich wäre, über XHR/Ajax, denn es ist definitiv Arbeit.

Ich brauche die Funktionalität von Safari 5, FF und Chrome wäre schön, aber nicht zwingend.

Mein code ist:

$.ajax({
    url: 'php/upload.php',
    data: $('#file').attr('files'),
    cache: false,
    contentType: 'multipart/form-data',
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});
Leider mit FormData-Objekt funktioniert nicht unter IE<10.
angeblich können Sie ein polyfill mit Flash zu unterstützen, die gleiche API. Check out github.com/Modernizr/Modernizr/wiki/... für mehr info.
Möglich duplicate.
Sie können $(':file') auswählen, um alle input-Dateien. Es ist nur ein bisschen einfacher.
Die Antwort gepostet wurde, fünf Jahre nachdem diese Frage beantwortet wurde. Bitte nicht den troll ähnliche Fragen nur zur Förderung Ihrer eigenen Antworten.

InformationsquelleAutor zoku | 2011-03-22

Schreibe einen Kommentar