json - फ़िनअपलोडर पर पूर्ण विधि फायरिंग नहीं है। नौसिखिया, कुछ हाथ की आवश्यकता होती है



callback complete (1)

अपने प्रश्न में आइटम को संबोधित करते हुए:

  1. "चुनिंदा फाइल" संवाद के अंदर प्रतिबंध के बारे में, आपको acceptFiles सत्यापन विकल्प भी सेट करना होगा। अधिक जानकारी के लिए रीडमेम में validation विकल्प अनुभाग देखें।
  2. गलत स्थान पर आपका validation विकल्प संपत्ति यह request प्रॉपर्टी / विकल्प के तहत नहीं होना चाहिए। वही आपके text , multiple , और callbacks विकल्पों / गुणों के लिए सही है साथ ही, आप अपनी कॉलबैक को jQuery प्लग-इन के लिए ठीक से सेट नहीं कर रहे हैं।
  3. IE में खोलें / सहेजें संवाद आपके सर्वर द्वारा सही "सामग्री-प्रकार" शीर्षलेख के साथ प्रतिक्रिया नहीं लौट रहा है आपके प्रतिक्रिया की सामग्री प्रकार "पाठ / सादे" होना चाहिए अधिक जानकारी के लिए सर्वर साइड रीमेड देखें
  4. आपके सर्वर की प्रतिक्रिया में जो भी कुछ भी लौटता है, उस पर प्रतिक्रिया क्लाइंट-साइड को संभालने में JSON.parse का उपयोग करके ठीक अपलोडर द्वारा पार्स किया जाएगा। आपके सर्वर की प्रतिक्रिया पर JSON.parse को JSON.parse का नतीजा आपके JSON.parse के लिए प्रतिक्रिया JSON.parse पैरामीटर के रूप में पारित किया जाएगा। यदि आप अपने सर्वर से विशिष्ट जानकारी अपने क्लाइंट-साइड कोड पर पास करना चाहते हैं, जैसे कुछ पाठ जिसे आप क्लाइंट-साइड, अपलोड की गई फ़ाइल आदि का नया नाम दिखाना चाहते हैं, तो आप अपने गुणों को जोड़कर उचित गुण जोड़ सकते हैं सर्वर प्रतिक्रिया इस डेटा को तब आपके पर उपलब्ध हैंडलर में उपलब्ध कराया जाएगा। यदि आपके पास इसके लिए कोई ज़रूरत नहीं है, तो आप "सफलता" प्रतिक्रिया को अभी वापस कर सकते हैं जो आप वर्तमान में लौट रहे हैं। सर्वर-साइड रीडमी, जिसे मैंने लिंक किया है, इस बारे में अधिक जानकारी प्रदान करता है।

मैंने # 2 में क्या कहा है, यह स्पष्ट करने के लिए, आपका कोड इस तरह दिखना चाहिए:

$('#files-upload').fineUploader({
   request: {
       endpoint: '@Url.Action("UploadFile", "Survey")',
       customHeaders: { Accept: 'application/json' },
       params: {
           //variables are populated outside of this code snippet
           surveyInstanceId: (function () { return instance; }),
           surveyItemResultId: (function () { return surveyItemResultId; }),
           itemId: (function () { return itemId; }),
           imageLoopCounter: (function () { return counter++; })
       }
   },
   validation: {
       allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'bmp']
   },
   text: {
       uploadButton: '<i class="icon-plus icon-white"></i>Drop or Select Files'
   }
})
   .on('complete', function(event, id, fileName, responseJSON) {
       alert("Success: " + responseJSON.success);
       if (responseJSON.success) {
          $('#files-upload').append('<img src="img/success.jpg" alt="' + fileName + '">');
       }
   });                              

तो, मैं एक MVC 4 अनुप्रयोग के भीतर FineUploader 3.3 का उपयोग कर रहा हूं, और यह एक बहुत ही शांत प्लगइन है, अच्छी तरह से नाममात्र लागत के लायक है। इसे बनाने के लिए धन्यवाद, बहुत उपयोगी अब, मुझे इसे सही तरीके से काम करना चाहिए।

मैं MVC के लिए बहुत नया हूँ और JSON को वापस करने के लिए बिल्कुल नया हूं, इसलिए मुझे यह काम करने के लिए कुछ सहायता चाहिए। यह है कि मैं क्या उपयोग कर रहा हूं, सभी दस्तावेज के भीतर।

var manualuploader = $('#files-upload').fineUploader({
request:
{
    endpoint: '@Url.Action("UploadFile", "Survey")',
    customHeaders: { Accept: 'application/json' },
    params: {
        //variables are populated outside of this code snippet
        surveyInstanceId: (function () { return instance; }),
        surveyItemResultId: (function () { return surveyItemResultId; }),
        itemId: (function () { return itemId; }),
        imageLoopCounter: (function () { return counter++; })
    },
    validation: {
        allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'bmp']
    },
    multiple: true,
    text: {
        uploadButton: '<i class="icon-plus icon-white"></i>Drop or Select Files'
    },                              
    callbacks: {
        onComplete: function(id, fileName, responseJSON) {
            alert("Success: " + responseJSON.success);
            if (responseJSON.success) {
                $('#files-upload').append('<img src="img/success.jpg" alt="' + fileName + '">');
                }
            }
    }
}

संपादित करें: मैं इंटरनेट एक्सप्लोरर 9 का उपयोग कर रहा था, फिर क्रोम, फ़ायरफ़ॉक्स में बदल गया और मैं सिर्फ ठीक अपलोड कर सकता हूं। IE9 के लिए क्या आवश्यक है? ब्राउज़र की परवाह किए बिना, सत्यापन मान्य नहीं है

समापन बिंदु आग, और फ़ाइल / पैरामीटर आबादी है, तो यह सब अच्छा है! मान्यकरण उपयोगकर्ता को इस सूची के बाहर कुछ चुनने से नहीं रोकता है, लेकिन मैं इसके साथ समय के लिए काम कर सकता हूं। मैं सफलतापूर्वक बचा सकता हूं और मेरे अपलोड के साथ क्या कर सकता हूं, शून्य को फ़ाइन करने के लिए शून्य प्राप्त कर सकता हूं I दरअसल, IE में, मुझे एक खुला / सेव संवाद मिल रहा है जो मेरे पास वर्तमान में है

प्रश्न: क्या परफॉर्मेट (आईडी, फाइलनाम, प्रतिक्रिया जेएसओएन) में फ़ंक्शन मापदंडों को रिटर्न से या बाहर निकलने पर मिल रहा है? मैं इस बारे में बस भ्रमित हूँ क्या मेरे JSON में इन पैरामीटर हैं, और आबादी?

मैं ऐसा नहीं करता (उन मापदंडों को पॉप्युलेट करता हूं), और सी आउटपुट में मेरी आउटपुट पद्धति जेन्सन रिजल्ट इस तरह दिख रही है, बस 'सफलता' (यदि उपयुक्त हो तो) लौटाएगा:

return Json(new { success = true });  

क्या मुझे और जोड़ने की आवश्यकता है? बचत होने के बाद यह रेखा होती है, और जो सभी मैं करना चाहता हूँ वह उपयोगकर्ता को बताता है कि ये अच्छा है या नहीं। मेरी जेसन में 'सफलता' संपत्ति प्रतिक्रिया के साथ मेल खाता है?

क्या मैं याद कर रहा हूँ, या गलत है? मुझे यकीन है कि यह दूसरों को भी मदद करेगा, इसलिए मुझे आशा है कि आप समय लेंगे और सहायता करेंगे। मैं इसकी सराहना करता हूं! धन्यवाद।





fine-uploader