Hochladen von Dateien mit AJAX ohne FormData (IE9)

8

In IE9 wird FormData nicht unterstützt. Dadurch wird das Hochladen von Dateien mit XMLHttpRequest viel weniger trivial.

Kann das gemacht werden? Ich habe gesehen, dass iFrames erwähnt wurde, und obwohl ich nicht dagegen bin, etwas haarigen Code zu schreiben, bin ich ratlos, wie das zu erreichen ist (es gibt viele Ressourcen, die über das Hochladen auf einen iFrame sprechen, aber nicht darüber, wie man das bekommt) Datei vom iFrame zum Server).

Mit vanilla JavaScript (keine Bibliotheken von Drittanbietern), wie würde man eine Datei asynchron ohne die Verwendung von FormData hochladen?

    
Qix 19.11.2014, 00:40
quelle

1 Antwort

7

Dieser Code sollte den Trick machen. Sorry war vor langer Zeit und ich dachte, dass IE9 auch mit XHR hochladen könnte (Es sollte, aber das ist die Iframe-Option).

Es macht folgendes:

  1. Fügen Sie Ihrer Seite eine Dateieingabe hinzu (kann auch in HTML erfolgen)
  2. Setzen Sie diesen Dateiselektor in ein Formular
  3. fügen Sie dem Formular Anmeldeinformationen hinzu
  4. Übergeben Sie das Formular an den iframe und verwenden Sie seine Seite als Rückgabewert.
%Vor%

PHP zum Beispiel speichert die Dateien in $_FILES

    
Mouser 22.12.2014, 01:14
quelle