2013-11-26 9 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

मुझे इस के लिए समाधान मिला। इसे सबमिट करने के लिए आपको फॉर्मडाटा का उपयोग करना होगा। आप इसे इंटरसेप्टर के रूप में उपयोग कर सकते हैं। मैं इसे इस तरह इस्तेमाल किया

  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

अन्यथा यह फ़ाइल नहीं भेजता ... यह सिर्फ सरल फॉर्म फ़ील्ड भेजता है। और ट्रांसफॉर्मर क्या है, आधिकारिक कोणीय पृष्ठों को देखें –

+0

thx यह काम करता है :) ...... – LeoG

संबंधित मुद्दे