2016-04-14 25 views
0

画像ファイルをサーバーにアップロードしようとしていますが、$ _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です常に空ですか?

+0

dataType: "json" ??それをテストとして取り出してみてください。何も指定されていない場合、jQueryは応答のMIMEタイプに基づいてそれを推測しようとします – Tasos

+0

類似したhttp://stackoverflow.com/questions/36609643/image-upload-with-ajax-but-php-does-not-see -file – Musa

答えて

0

アップロードの管理にプラグインを使用することをおすすめします。あなたがdados.append(name, value, filename);を試してみましたすべての情報は

+0

'print_r($ _ FILE、true)'が間違っています。それは '$ _FILES'である必要があります。 –

+0

Oups、私の悪い、私は疲れた笑 –

0

があるかどうかを確認するためにJquery Plupload

を使用してみてくださいしかし、あなたはプラグインを使用したくない場合は、(真$ _ FILES、)しますprint_rを試してみてください?詳細については、https://developer.mozilla.org/en-US/docs/Web/API/FormData/appendを参照してください。私はFormData Web APIに慣れていません。 また、あなたの答えはここにあります:How to use FormData for ajax file upload

関連する問題