画像ファイルをサーバーにアップロードしようとしていますが、$ _FILEは常に空です。理由はわかりません。
<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何をやっている。ここ
はhtmlです常に空ですか?
dataType: "json" ??それをテストとして取り出してみてください。何も指定されていない場合、jQueryは応答のMIMEタイプに基づいてそれを推測しようとします – Tasos
類似したhttp://stackoverflow.com/questions/36609643/image-upload-with-ajax-but-php-does-not-see -file – Musa