Heim >Backend-Entwicklung >PHP-Tutorial >Warum schlägt das Hochladen meiner jQuery-AJAX-Datei nach PHP fehl, obwohl „[object FormData]' angezeigt wird?

Warum schlägt das Hochladen meiner jQuery-AJAX-Datei nach PHP fehl, obwohl „[object FormData]' angezeigt wird?

Susan Sarandon
Susan SarandonOriginal
2024-12-28 03:51:09855Durchsuche

Why Does My jQuery AJAX File Upload to PHP Fail Despite Showing

jQuery-AJAX-Datei-Upload in PHP

Problem: Das Hochladen von Dateien über eine jQuery-AJAX-Anfrage schlägt fehl, obwohl der Browser „[object FormData]“ und eine Fehlermeldung anzeigt Leeren Sie den Ordner „Uploads“ auf dem Server.

Lösung: Zum Erfolg Um Dateien mit jQuery AJAX hochzuladen, ist ein serverseitiges Skript erforderlich, um die hochgeladene Datei zu verarbeiten und an den gewünschten Speicherort zu verschieben.

Aktualisiertes jQuery-Skript

Das folgende aktualisierte jQuery-Skript verweist auf einen Server -seitiges PHP-Skript namens „upload.php“:

$("#upload").on("click", function() {
    var file_data = $("#sortpicture").prop("files")[0];
    var form_data = new FormData();
    form_data.append("file", file_data);
    $.ajax({
        url: 'upload.php',
        dataType: 'text',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,
        type: 'post',
        success: function(php_script_response){
            alert(php_script_response);
        }
    });
});

Serverseitiges PHP-Skript

Das Folgende Das Skript „upload.php“ prüft die hochgeladene Datei auf Fehler und verschiebt sie in das Verzeichnis „uploads“:

<?php
if (0 < $_FILES['file']['error']) {
    echo 'Error: ' . $_FILES['file']['error'] . '<br>';
} else {
    move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}
?>

Zusätzliche Überlegungen

  • Stellen Sie sicher, dass Sie den richtigen Serverpfad haben in das Verzeichnis „Uploads“.
  • Stellen Sie sicher, dass das Verzeichnis „Uploads“ vorhanden ist beschreibbar.
  • Überprüfen Sie Ihre PHP-Konfiguration auf „upload_max_filesize“ und „post_max_size“, um sicherzustellen, dass Ihre Testdateien diese Grenzwerte nicht überschreiten.

Datei mit serverseitigem Skript umbenennen

Um die Datei auf dem Server mit PHP umzubenennen:

move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/my_new_filename.whatever');

Das obige ist der detaillierte Inhalt vonWarum schlägt das Hochladen meiner jQuery-AJAX-Datei nach PHP fehl, obwohl „[object FormData]' angezeigt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn