Я пытаюсь загрузить файл изображения на сервер, но $ _FILE всегда пуст, и я не знаю почему.
Вот HTML:
<form action='' id='ajax_form' method='post' enctype="multipart/form-data">
<input type='file' name='imagem'>
<input type='submit' id='btUploadImagem' value='Upload'>
</form>
А вот JQuery скрипт:
function salvaImagem(){
var form = $(this).closest('form');
var formData = new FormData(form);
var dados = formData;
jQuery.ajax({
type: "POST",
url: "salvaImagem",
data: dados,
contentType: false,
processData: false,
dataType: "json"}).done(function(response)
{
if(response.sucesso){
//show success message
}
else{
//show error message
}
});
return false;
}
$('#btUploadImagem').on('click', salvaImagem);
И PHP контроллер:
public function salvaImagem()
{
$arquivo = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;
//some other checks
}
Что я делаю не так, чтобы в $ _file всегда пусто?
dataType: "json" ?? попробуйте взять это как тест. если ни один не указан, jQuery будет пытаться вывести его на основе MIME-типа ответа – Tasos
Аналогично http://stackoverflow.com/questions/36609643/image-upload-with-ajax-but-php-does-not-see -file – Musa