Napisałem to, aby przesłać obraz do mojego lokalnego serwera WWW Apache, używając elementu input
w kodzie HTML. file
jest zalogowany jako nie pusty, ale dlaczego form_data
jest całkowicie pusty?Dodatek FormData nie działa
$('#upload-image').change(function(e){
var file = e.target.files[0];
var imageType = /image.*/;
if (!file.type.match(imageType))
return;
console.log(file);
var form_data = new FormData();
form_data.append('file', file);
console.log(form_data);
$.ajax({
url: 'http://localhost/upload.php',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'POST',
success: function(response){
console.log(response);
},
error: function(error){
console.log(error);
}
});
});
To jest moje upload.php
na lokalnym serwerze internetowym
<?php
header('Access-Control-Allow-Origin: *');
if (0 < $_FILES['file']['error']) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
$target_path = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_FILES['file']['name'];
echo $target_path;
}
?>
The console.log(response)
dzienników wszystkie linie kodu z pliku PHP, zamiast zwróconego wyniku echo
czy próbowałeś używać w adresie URL "upload.php"? Nie jest powszechne, aby zobaczyć absolutną ścieżkę, a nie mówiąc o localhost, pamiętaj, że wywołanie AJAX zależy od tego, gdzie znajduje się plik javascript, więc na przykład, jeśli masz folder w katalogu głównym o nazwie "phpFiles/upload.php", to należy umieścić w adresie URL. – Leo
console.log (form_data); co jest o/p, jak się tu dostałeś? –
Co spodziewasz się zobaczyć? Naprawdę nie można zarejestrować obiektu formData, więc powinien on być pusty, nawet jeśli plik istnieje. Czy sprawdziłeś serwer, czy plik został odebrany, czy nie. – adeneo