2017-02-22 7 views
0

イムクライアント:のNode.js multer req.file常に未定義

私は多くの回答を見ましたが、何も機能しませんでした。

 <form id="myform" encrypt="multipart/form-data"> 
     <label for="userName">Name</label> 
     <input type="text" name="userName"/> 
     <br> 
     <label for="phoneNumber">PhoneNumber</label> 
     <input type="text" name="phoneNumber"/> 
     <br> 
     <label for="file">UploadFile</label> 
     <input type="file" name="avatar"/> 
     <input type="submit"/> 
    </form> 

$('#myForm').submit(function(e){ 

     var formData = new FormData($(this)[0]); 
     $.ajax({ 
      type:'POST', 
      url:'uploads', 
      data : formData, 
      contentType: true, 
      processData: false 
     }).done(function(data){ 
      //print response on success 
      console.log(data); 

     }).fail(function(data) { 
       console.log('Error'); 
      }); 
     e.preventDefault(); 
     }); 

enter image description here あなたは私が間違ってやっているものを私にしてください教えてください。

答えて

0

私はfalseにコンテンツタイプを設定しましたAJAXでエラーを検出しました:@Marcへ

$('#myForm').submit(function(e){ 

     var formData = new FormData($(this)[0]); 
     $.ajax({ 
      type:'POST', 
      url:'uploads', 
      data : formData, 
      contentType: false, // <----------------- 
      processData: false 
     }).done(function(data){ 
      //print response on success 
      console.log(data); 

     }).fail(function(data) { 
       console.log('Error'); 
      }); 
     e.preventDefault(); 
     }); 

感謝を。

1

なぜ$('#myForm').submit(function(e){...})を実装しましたか?

あなたは<form>要素にタイプミスがあります。属性はenctypeと呼ばれ、「暗号化」されません。そして、単にmethod="POST"属性を追加してすべてのjavascriptを削除し、ブラウザにアップロードさせることができます。

サンプル:

<form method="POST" action="/uploads" enctype="multipart/form-data"> 
..... 
</form> 
+0

サンプルが動作します。ありがとうございます。私はどのように応答をキャッチすることができますか教えていただけますか? –

+0

どこにキャッチしたいですか?アップロードフォームを使用してブラウザにページを表示させますか? – Marc

+0

はい、私が望むものは、http:// myip/uploadsにブラウザを変更することです。 –

関連する問題