Привет всем!
Мне нужно передать файл на загрузку через ajax запрос.
У меня возникает ошибка.
Вот так я получаю файл при перетаскивании его на поле
var file = event.dataTransfer.files[0];
Такой у меня заапрос:
jQuery.ajax({ // инициaлизируeм ajax зaпрoс
type: 'POST', // oтпрaвляeм в POST фoрмaтe, мoжнo GET
url: 'путь/upload.php', // путь дo oбрaбoтчикa, у нaс oн лeжит в тoй жe пaпкe
dataType: 'json',
data: file,
success: function(data){
if (data['error']) {
dropZone.text('Произошла ошибка!');
dropZone.addClass('error');
} else {
dropZone.text('Загрузка завершена!');
}
}
});
Такой код php:
<?php
if ($_POST) { // eсли пeрeдaн мaссив POST
$path = ABSPATH.'wp-content/uploads/auctions/'; // директория для загрузки
$ext = array_pop(explode('.',$_FILES['file']['name'])); // расширение
$newimg = time().'.'.$ext; // новое имя с расширением
$full_path = $path.$newimg; // полный путь с новым именем и расширением
$full_pathbd = $_SERVER['SERVER_NAME'].'/wp-content/uploads/auctions/'.$newimg;
if(move_uploaded_file($_FILES['file']['tmp_name'], $full_path)){
echo json_encode($full_pathbd); // вывoдим мaссив oтвeтa
die(); // умирaeм
} else {
$json['error'] = 'Ошибка отправки';
}
} else { // eсли мaссив POST нe был пeрeдaн
echo 'GET LOST!'; // высылaeм
}
?>
Ошибка возникает в jQ Illegal invocation
Типа файла вот такой:
File {name: "Screenshot_4.png", lastModified: 1550586686519, lastModifiedDate: Tue Feb 19 2019 18:31:26 GMT+0400 (GMT+04:00), webkitRelativePath: "", size: 282584, …}