2011-11-15 13 views
17

जब फ़ाइलें जोड़ दी जाती हैं तो मैं स्वचालित रूप से अपलोड प्रक्रिया शुरू करना चाहता हूं। मैंने फ़ाइलों के अंत में स्टार्ट फ़ंक्शन को जोड़ा है लेकिन यह अपलोड शुरू नहीं करता है।प्लूपलोड स्वचालित रूप से अपलोड होने पर अपलोड करें

uploader.bind('FilesAdded', function(up, files) { 
     var str = ""; 
     for (var i in files) { 
     str += '<div id="' + files[i].id + '">' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <b></b></div>'; 
     } 
     $('#filelist').html(str); 
     up.refresh(); 
     up.start(); 
    }); 

यहाँ मेरी रचना कोड

var uploader = new plupload.Uploader({ 
     runtimes: 'html5,flash,silverlight', 
     autostart : true, 
     url: '<%= images_path %>', 
     max_file_size: '10mb', 
     multipart: true, 
     browse_button: "pickfiles", 
     container: "the-uploader", 
     drop_element : "drop-area", 
     multipart_params: { 
     '_http_accept': 'application/javascript', 
     '<%=request_forgery_protection_token%>': '<%=form_authenticity_token%>', 
     '<%=request.session_options[:key]%>': '<%=request.session_options[:id]%>' 
     }, 
     filters: [ 
     {title: "Images", extensions: "avi,jpg,jpeg,png,zip"} 
     ], 
    }); 
+0

क्या आप क्या हो रहा है पर कुछ विवरण दे सकते हैं? क्या आपका एचटीएमएल डिस्प्ले अपडेट करता है? सर्वर लॉग में कुछ भी है? 14 Uncaught SYNTAX_ERR: SYNTAX_ERR: – muffinista

उत्तर

28

अपने FilesAdded बाँध में up.start() जोड़ना अपलोड शुरू कर देना चाहिए जब एक फ़ाइल जोड़ा जाता है है। मैं अपने अपलोड करने वाले की तरह तो बुलाने की मार्ग नीचे चले गए हैं (मैं इसे जिस तरह से कर रही समस्याओं आप इसे करने की कोशिश कर रहे हैं के लिए किया था):

$(function() { 
    // Setup html5 version 
    $("#html5_uploader").pluploadQueue({ 
     // General settings 
     runtimes : 'html5', 
     url : 'upload.php', 
     max_file_size : '10mb', 
     chunk_size : '1mb', 
     unique_names : true, 
     dragdrop : true, 
     multiple_queues : false, 
     multi_selection : false, 
     max_file_count : 1, 

     // Specify what files to browse for 
     filters : [ 
     {title : "Text files", extensions : "txt"} 
     ], 

     init : { 
     FilesAdded: function(up, files) { 
      up.start(); 
     }, 
     UploadComplete: function(up, files) { 
      $.each(files, function(i, file) { 
      // Do stuff with the file. There will only be one file as it uploaded straight after adding! 
      }); 
     } 
     } 
    }); 
    }); 
+0

मैं त्रुटि plupload.full.min.js मिला DOMException 12,) up.start का उपयोग कर (संस्करण 2.1.9 – tyan

12

मेरे लिए यह अपने संस्करण काम नहीं किया लेकिन काम किया:

FilesAdded: function(up, files) { 
    setTimeout(function() { up.start(); }, 100); 
}, 

तो प्रारंभ करने के लिए 100 एमएस के बाद टाइमर सेट करें। मैं जबकि परीक्षण jQuery ui संस्करण का उपयोग कर रहा हूँ और यह त्रुटि आई: "। सुनिश्चित करें कि आप यह बाँध init के बाद से यह डिफ़ॉल्ट हैंडलर बांधता के बाद करें"

g("#" + l.id).position() is null 

/js/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js 
+0

का उपयोग कर इसे क्रियान्वित करने शुरू नहीं होगी 'शुरू()' लगातार? – Aistis

13

तो अपने कोड:

uploader.bind('FilesAdded', function(up, files) {...}); 

अपने

uploader.init(); 

more information

+2

यह समाधान है, धन्यवाद – NicoGranelli

+1

विषम! मुझे आश्चर्य है कि यह इस तरह से काम करता है – jontro

+1

यह जवाब स्वीकार किया जाना चाहिए। –

3

मैं भी मेरे लिए एक ही है और यह करने के लिए जिस तरह से नीचे पाया चाहने गया था के बाद।

एक नया तरीका स्वचालित रूप से फ़ाइल अपलोड शुरू करने के लिए के बाद फ़ाइल जोड़ने बस है की तरह नीचे

$("#uploader").plupload({ 
    ..... 
    autostart: true, 
    ..... 
}); 
2

बस इस तरह से

FilesAdded: function(up, files) { 
    $('#fileupload_start').click(); 
}, 

यह द्वारा अपलोड प्रारंभ करें बटन को गति प्रदान autostart संपत्ति के लिए सही स्थापित करने की आवश्यकता 100 एमएस के इंतजार किए बिना फ़ाइल अपलोड करेगा।

+0

यह मेरे लिए काम करता है मैं संस्करण 2.1.9 का उपयोग कर रहा हूँ – tyan