$ _FILES leer nach AJAX-Upload

David Andersson

Ich entwickle ein einfaches Skript zum Hochladen einer Datei über AJAX, aber nach dem Senden des Formulars ist die Variable $ _FILES vollständig leer, obwohl die Datei in der Eingabe von php: // vorhanden ist, aber es gibt keine einfache Möglichkeit, nur die Datei zu extrahieren. Kennt jemand den Grund und / oder die Lösung für dieses Problem?

Ich habe alle gängigen Lösungen überprüft. enctype = "multipart / form-data" -Rechte für temporäre Ordner-Form-Tags, die doppelte Anführungszeichen und die Ausgabe der Dateieingabe in JS schließen

Nichts hat mein Problem gelöst.

ROT Dies ist KEINE Abfrage, und ich habe seit 24 Stunden kein Duplikat gefunden. Bitte nicht als Duplikat markieren, es sei denn, Sie sind sich sicher, dass es eines ist.

HTML

<form action="upload.php" method="POST" enctype="multipart/form-data" id="testf">
<input type="file" name="file" accept=".jpg">
<input type="submit" value="Skicka">
</form>

JavaScript

let data = document.querySelector("#testf");
data.onsubmit = function() {
    var http = new XMLHttpRequest();
    http.open("upload.php", data.action);
    http.onreadystatechange = function () {
        console.log(http.response);
    }
    http.setRequestHeader("Content-type", data.enctype);
    http.send(new FormData(data));
    event.preventDefault();
    return false;
}

PHP

<?php
var_dump($_FILES);
?>

Dies sollte den Inhalt meiner Datei aber drucken

array(0) {}

ist alles was ich bekomme. Nutzlast anfordern ist:

------WebKitFormBoundaryZVGq8suqFUUSFDtW
Content-Disposition: form-data; name="file"; filename="david.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryZVGq8suqFUUSFDtW--
Edwin Dijas Siehe

Sie haben ein Problem mit Ihrer JavaScript-Methode XMLHttpReqest. Es werden mindestens zwei Parameter benötigt: Methode und URL. Vollständige Parameter sind: Methode, URL, Async, Benutzer, Passwort

Ändern Sie Ihren Code von:

 http.open("upload.php", data.action);

Zu:

 http.open("post", data.action );

Update: Auch entfernen

http.setRequestHeader("content-type", "multipart/form-data")

Formulardaten legen bereits ihre Überschriften für den Inhaltstyp fest.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

TOP Liste

  1. 1

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  2. 2

    Wie füge ich mehrere Spalten in einer Spalte mit derselben Tabelle in SQL Server zusammen?

  3. 3

    Popup-Fenster oder mehrere Fenster mit PyQt5 / QtDesigner

  4. 4

    Gibt es eine sauberere Möglichkeit, Konstruktorargumente und Instanzeigenschaften einer Klasse in Typescript zu definieren?

  5. 5

    django-allauth Empfängersignal zum Hinzufügen einer Gruppenberechtigung zum Benutzer bei der Anmeldung

  6. 6

    Wie kann man Gitterquadrate dazu bringen, die Farbe zu ändern?

  7. 7

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  8. 8

    Scherz, wie man eine Funktion verspottet, die von einer verspotteten Funktion zurückgegeben wird

  9. 9

    Wählen Sie Geschwister vor einem Element aus

  10. 10

    Ändern Sie den Knotenpfad in das aktuelle Verzeichnis

  11. 11

    Ich kann nicht verstehen, wie man Go-Code in mehreren Dateien kompiliert

  12. 12

    Zählen Sie die Vorkommen jedes Werts in einem Tupel in Python

  13. 13

    Javascript wird nach dem AJAX-Aufruf nicht aktiviert, es sei denn, die Seite wurde aktualisiert

  14. 14

    Laden Sie das Bild perfekt in HTML Canvas

  15. 15

    CBCentralManager wird nach dem Verbinden neu gestartet

  16. 16

    So implementieren Sie Pushwoosh mit ionic 2

  17. 17

    Wie schiebe ich mein neues Element, ohne ein neues Mongoose-Element zu erstellen?

  18. 18

    Wie wird der Wert im Dropdown-Menü basierend auf den ausgewählten Daten / IDs angezeigt?

  19. 19

    Wie suche ich eine Zeichenfolge nach mehreren Zeichenfolgen und ersetze sie dann durch andere Zeichenfolgen? (Python)

  20. 20

    base js: Wie füge ich einem Objekt eine Eigenschaft auf die 'alte' Weise hinzu?

  21. 21

    Wie führe ich Junit-Tests über die Befehlszeile unter Windows ohne Paket aus?

heißlabel

Archiv