PDA

View Full Version : مبتدی: مشکل در progress جیکوئری



tsonade
جمعه 14 اسفند 1394, 05:02 صبح
سلام دوستان
من یک اپلود سنتر درست کردم که فایل به وسیله Ajax به سرور ارسال میشه و به خوبی هم عمل می کند
فقط می خواستم طول ارسالی فایل رو بگیرم event.loaded و تقسیم بر طول کل فایل بکنم event.total و در 100 ضرب کنم که درصد اپلود را در سایت نمایش بدهم

var progress_upload = function(event){
if(event.lengthcomputable) {
var value = parseint( (event.loaded/ event.total) * 100 );
}
}
اما متاسفانه در قسمتی که می خوام اندازه ارسال فایل رو بگیرم ارور میده و شرط اجرا نمیشه
انگار اصلا چنین کدی وجود نداره و ...


var form_data = new FormData ($('#dataform').get(0));


$.ajax({
url:'ajax.php',
type:'POST',
data: form_data,
cache:false,
contentType:false,
processData:false,
xhr: function()
{
var myxhr = $.ajaxSettings.xhr();


if(myxhr.upload)
{
xhr.upload.addeventlistener('progress',progress_up load );
}

return myxhr;



چه مشکلی در این شرط وجود داره که باعث میشه اجرا نشه ؟
وقتی این شرط رو برمیدارم به خوبی عمل می کنه و فایل رو اپلود می کنه



if(myxhr.upload)
{
xhr.upload.addeventlistener('progress',progress_up load );
}
لطفا راهنمایی کنید 1 ماهه گیر افتادم :ناراحت:

blue.web9
دوشنبه 17 اسفند 1394, 11:17 صبح
این قسمت از کد تغییر بدید و داخل متغییر loaded مقدار آپلود شده و متغییر total مقدار کل فایل قرار میگیره.


xhr: function(){

var myxhr = $.ajaxSettings.xhr() ;
myxhr.upload.onprogress = function(e){
if( e.lengthComputable === true )
{
var loaded = e.loaded;
var total = e.total;
}

}

return myxhr ;
}