Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebe ich Probleme beim Hochladen von jQuery-AJAX-Dateien mit serverseitiger PHP-Implementierung?
Die Frage dreht sich um die Implementierung einer grundlegenden Datei-Upload-Funktionalität eine Intranetseite mit jQuery AJAX und PHP. Der Benutzer hat den HTML- und jQuery-Code eingerichtet, hat jedoch Probleme beim Hochladen der Datei und beim Speichern im gewünschten Verzeichnis. Darüber hinaus suchen sie Rat zum Umbenennen der Datei auf der Serverseite.
Das jQuery-Skript sendet ein Formular mit der hochgeladenen Datei über eine AJAX-Anfrage an ein serverseitiges PHP-Skript . Das Problem liegt jedoch darin, dass auf dem Server kein PHP-Skript vorhanden ist, um die Datei zu verarbeiten und in das angegebene Upload-Verzeichnis zu verschieben.
Serverseitiges PHP-Skript
Um das Problem zu beheben, ist ein PHP-Skript namens „upload.php“ auf dem Server erforderlich. Dieses Skript übernimmt den Datei-Upload und führt die erforderlichen Vorgänge aus. Hier ist der Code für das PHP-Skript:
<?php if (0 < $_FILES['file']['error']) { echo 'Error: ' . $_FILES['file']['error'] . '<br>'; } else { move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']); } ?>
Dieses PHP-Skript:
Im jQuery-Skript wird die URL so geändert, dass sie auf das Skript „upload.php“ verweist. Darüber hinaus ermöglicht die Änderung von „dataType“ in „text“ die Anzeige der Antwort des PHP-Skripts, falls vorhanden. Das aktualisierte Skript:
$('#upload').on('click', function() { var file_data = $('#sortpicture').prop('files')[0]; var form_data = new FormData(); form_data.append('file', file_data); alert(form_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); } }); });
In der obigen Lösung behält die hochgeladene Datei ihren ursprünglichen Namen. Um die Datei umzubenennen, nehmen Sie die folgende Änderung im PHP-Skript vor:
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/my_new_filename.whatever');
Diese Zeile ersetzt den ursprünglichen Dateinamen durch „my_new_filename.whatever“ im Verzeichnis „uploads“.
Das obige ist der detaillierte Inhalt vonWie behebe ich Probleme beim Hochladen von jQuery-AJAX-Dateien mit serverseitiger PHP-Implementierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!