2013-11-26 7 views
5

としてファイルを持っている必要があります:Angularjs ngResourceは、私がフィールドを以下ましたリソースを持っている分野の一つ

description, picture 

は、マルチパート/フォームとしてURLにそのリソースを送信することが可能であり、そうであれば、どのように?

私が入れて試してみた:

app.factory('resource_name', ['$resource', function($resource) { 
return $resource('<url> ', 
    { 
      <params_for_url> 
    }, 
     save: { 
      method: "POST", 
      headers: { 
       "Content-Type": "multipart/form-data;" 
      } 
     }, 

が、これは、フォームデータとしてサーバーに取得していません。

{ 
description: "gtrdgf", 
picture: { 
    lastModifiedDate:2013-11-26T20:42:13.000Z, 
    name: "suggested_pokes.png" 
    size: 32995 
    type: "image/png" 
    webkitRelativePath: "" 
} 

これまでにこの要件を満たした人はいましたか?これがまったく可能な場合...

ありがとう!

+0

単にファイルを使用し.... AJAXを使用してファイルをアップロードしないであろうコンテンツタイプを設定しますアップローダープラグインは、クロスブラウザのサポートが必要な場合 – charlietfl

答えて

12

この回答が見つかりました。 FormDataを使用して提出する必要があります。インターセプタとして使用できます。私は

  save: { 
       method: 'POST', 
       transformRequest: formDataObject, 
       headers: {'Content-Type':undefined, enctype:'multipart/form-data'} 
      }, 

を(これは私のngResourceの方法で保存され)、ここで変圧器である。このようにそれを使用:

 function formDataObject (data) { 
      var fd = new FormData(); 
      angular.forEach(data, function(value, key) { 
       fd.append(key, value); 
      }); 
      return fd; 
     } 
+0

変圧器は何ですか? – LeoG

+0

それ以外の場合はファイルを送信していません...単純フォームフィールドを送信しました。どの変圧器が、公式のangularjsページを見てください –

+0

thxそれは働いた:) ...... – LeoG

関連する問題