Не удаётся передать файлы на сервер, переменная $_FILES пуста
Суть такова, я пытаюсь передать файл с клиентского сайта на react.js с помощью axios, используя метод post на сервер php. Вот клиент с которого осуществляется передача данных с файлом:
const data = {
titleAdv: "",
linkAdv: "",
media: "", //(File) Сюда приходит файл из формы для загрузки
},
let dataForSendOnServer = new FormData();
dataForSendOnServer.append("newData", data);
const url = "https://www.example.com/writeDataToJson.php";
const options = {
headers: {
"Content-type": `multipart/form-data`
},
};
axios
.post(url, dataForSendOnServer, options)//осуществление самой передачи данных на сервер
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
и серверный файл writeDataToJson.php
$response = array();
$upload_dir = 'uploads/';
$server_url = 'https://www.clubok24.ru/';
if($_FILES['newData']){
$image_name = $_FILES['newData']['name'];
$image_tmp_name = $_FILES['newData']['tmp_name'];
$error = $_FILES['newData']['error'];
if($error>0){
$response = array(
'status' => 'error',
'error' => true,
'message' => 'ERROR uploading the file!'
);
} else {
$random_name = rand(1000,1000000).'-'.$image_name;
$upload_name = $upload_dir.strtolower($random_name);
$upload_name = preg_replace('/\s+/','-',$upload_name);
if(move_uploaded_file($image_tmp_name, $upload_name)){
$response = array(
'status' => 'error',
'error' => false,
'message' => 'Success!',
'url' => $server_url . '/' . $upload_name
);
} else {
$response = array(
'status' => 'error',
'error' => true,
'message' => 'ERROR uploading the file!'
);
}
}
} else {
$response = array(
'status' => 'error',
'error' => true,
'message' => 'ERROR - files is empty !'
);
};
echo json_encode($response);
Всё бы ничего, но при проверке на пустоту, глобальная переменная $_FILES пуста, как ни крути. В чём может быть проблема? Может как-то не так отправляю?