2011-11-15 10 views
17

Dosya eklendiğinde, yükleme işlemini otomatik olarak başlatmak istiyorum. FilesAdded öğesinin başlangıcında başlatma işlevini aradım ancak yüklemeyi başlatmıyor.Plupload Dosyaları eklediğinde otomatik olarak yüklemeyi başlat

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(); 
    }); 

Burada dosya eklendiğinde yükleme başlamalıdır sizin FilesAdded bağlama up.start() ekleme benim oluşturma kodu

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

Neler olup bittiği hakkında biraz bilgi verebilir misiniz? HTML ekranınız güncelleniyor mu? Sunucu kayıtlarında bir şey var mı? – muffinista

cevap

28

olduğunu. Ben gibi pek benim yükleyenle çağırarak güzergahı aşağı gittin (Sorunlarım o şekilde yapmayı onu aramak çalışıyoruz vardı):

$(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

Hata var plupload.full.min.js: 14 Yakalanmamış SYNTAX_ERR: SYNTAX_ERR: DOMException 12, sürüm 2.1.9 kullanarak up.start() kullanarak – tyan

12

sizin sürümünü işe yaramadı Benim için ancak çalışma yaptı:

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

Başlamayı yapmak için 100 ms sonra bir zamanlayıcı ayarlayınız. Ben test ederken jquery ui sürümünü kullanıyor ve bu hata var am: "Emin bunu bağlamak varsayılan işleyicileri bağladığı için init sonra yap"

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

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

"Start()' sürekli olarak çalıştırılmaya başlamaz mı? – Aistis

13

Yani kod:

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

senin

uploader.init(); 

more information

+2

Bu çözüm, – NicoGranelli

+1

Tek! Neden bu şekilde çalıştığını merak ediyorum – jontro

+1

Bu cevap kabul edilmeli. –

3

Ben de benim için aynı ve bunu yapmak için yol altında bulunan isteyen sonra.

dosyayı ekleyerek hemen sonra otomatik olarak dosya yükleme başlatmak için yeni bir yol

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

Sadece bu yolla

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

Bu tarafından Başlat Yükle düğmesini tetiklemek gibi aşağıda autostart özelliğine true ayarlamanız gerekir dosyayı 100 ms beklemeden yükleyecektir.

+0

bu benim için sürüm 2.1.9 kullanıyorum – tyan