2012-09-13 17 views
8

Blueimp jquery-file-upload eklentisi için bir ilerleme çubuğu uygulamak istiyorum, ancak progress geri çağırma, sadece yükleme başladıktan hemen sonra ve veriler bir kez başlatılır. yüklenen == data.total.İlerleme geri bildirimi her zaman jquery-file-upload eklentisi için% 100 yükleme gösterir

<input data-url="/ads/32/photos" id="image" name="image" type="file" /> 

$(".upload-btn input").fileupload({ 
    dataType: "json", 
    progress: function(e, data) { 
     alert(data.loaded + "/" + data.total); 
    }, 
    done: function(e, data) { 
     alert("done"); 
    } 
    }); 
(yükleme tamamlandığında)

Saniyeler sonra yapılan geri arama ateşlenir ve ben Yüklemenin başarılı olduğu sunucu günlükleri aracılığıyla teyit edebilir. Ben de progressall geri arama kullanmaya çalıştığınızda aynı davranışı alıyorum.

İlgili olup olmadığından emin değilim, ancak şu anda herhangi bir yükleme etkinliğinin gerçekleşmesini engelleyen eklemeden beri şu anda jquery.fileupload-fp.js kitaplığını dahil etmiyorum.

Neyi yanlış yaptığımı biliyor musunuz?

+1

@chris hey, bu sorunu gidermek başardık? Aynı konuyla yüzleşiyorum. – varunvlalan

cevap

-1

alert ilerleme işlevi "% 100" dizesiyle mi çalışıyor? Eklentiye aşina değilim, ancak progress işlevi için alert ifadesi, her şeyi String türüne dönüştürür. Bu yüzden "x/y" dizesini göstermesini beklerdim. bu özelliklerin (total ve loaded) doğru ise

Her durumda size o zaman, istediğiniz davranışı vermelidir,

alert(data.loaded/data.total); // no quotes, no +'s 

için progress fonksiyonunu değişmelidir.

Düzenleme: Ne olduğunu açıklığa kavuşturmak için, eğer bu soruya cevap verdiyse: + işleci, işlenenlerinin veri türüne göre farklı şekillerde davranır. İki sayı birlikte + ise, aritmetik bir ek işleç olarak çalışır. , işleçlerin bir bile bir dize ise, + ilk önce diğer işlenenleri ilk olarak dize ve sonra birleştirme bunları değiştirecektir. Sonuç, bir sayı değil, bir dize olacaktır.

var two = "2"; // two is a String data type 
alert(two + 2); // Returns "22" as a String 

var two = 2; 
alert(two + 2); // Returns 4 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Addition

İlgili konular