7

मैं अपने नए रेल परियोजना में https://github.com/blueimp/jQuery-File-Upload/wiki/Rails-setup-for-V5 का उपयोग करने की कोशिश कर रहा हूं। मैं assignments नामक ऑब्जेक्ट्स बनाना चाहता हूं जिनके पास कई फाइलें संलग्न हैं।मैं एक नेस्टेड रूप में jQuery फ़ाइल अपलोड का उपयोग कैसे करूं?

मैं एक असाइनमेंट के लिए एक फॉर्म कैसे बना सकता हूं जिसमें फ़ाइलों को अपलोड करने के लिए घोंसला रूप है?

+1

नेस्टेड फॉर्म HTML4 और HTML5 में अवैध हैं और आम तौर पर समस्याएं पैदा करते हैं ... –

+4

उनका मतलब सचमुच नेस्टेड रूपों का मतलब नहीं है, लेकिन रेलवे तरीके से, जब आप कई मॉडलों के साथ काम करते हैं। – Robin

+0

क्या आपको कभी इसके लिए समाधान मिला है? – Wilhelm

उत्तर

2

यह प्लगइन इनपुट [प्रकार = फ़ाइल] जानकारी फ़ॉर्म बदलता है और जब यह अन्य रूप के अंदर होता है तो यह अमान्य है। मैंने इसे हल किया: बाहरी रूप मैं बदल गया <div id="form">। मैं jQuery के माध्यम से

$.post(url, $('#form *').serialize(), function(response){...}, 'json') 

बेशक आपको फ़ॉर्म सबमिट करने से पहले किसी भी तरह सर्वर-साइड पर अपलोड प्रबंधित करना होगा।

2

तरह से मैं यह सिर्फ फ़ाइलों को अपलोड करने के लिए अपने मुख्य फार्म के बाहर एक अलग रूप में जोड़ने के लिए है क्या किया:

= s3_uploader_form post: void_url, as: "photo_url", id: "photo_upload" do 
    = file_field_tag "file", multiple: true 

= form_for @model do |f| 
    ... 
    = f.fields_for :children do |child_fields| 
    = file_field_tag :"#{child_id}_file", multiple: true 

तो मैं दोनों रूपों में fileupload प्लगइन का हिस्सा हुक, इसलिए जैसे:

$("#photo_upload").fileupload 
    add: (e, data) -> 
    data.submit() 

    done: (e, data) -> 
    file = data.files[0] 

// For each child 
$("##{child_id}_file").fileupload 
    dropzone: $("##{child_id}_dropzone") 
    add: (e, data) -> 
    # Upload the file using the external upload form with the proper form action and fields 
    $rootPhotoUploadForm.fileupload('add', { files: [file], child_id: child_id }) 

मूल रूप से, मैं बाहरी अपलोड फ़ॉर्म से फ़ाइल अपलोड करने के लिए jQuery-File-Upload's API का उपयोग करता हूं।

ध्यान दें कि बाहरी अपलोड फॉर्म पर 'एड' ट्रिगर करते समय child_id शामिल है ताकि मुझे पता चले कि किस बच्चे ने फ़ाइल अपलोड ट्रिगर किया है। यह मान प्रत्येक कॉलबैक में data चर में उपलब्ध है।

मैंने बहुत कुछ बताया है क्योंकि बहुत सारे एप्लिकेशन विशिष्ट कोड हैं, उम्मीद है कि आप इसे वहां से समझ सकते हैं।

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