ورود

View Full Version : راهنمایی برای ایجاد progress bar



m.yazdian
سه شنبه 24 دی 1392, 07:45 صبح
باسلام
دوستان من برای Upload فای نیاز به ایجاد progress bar دارم. البته نه به صورت گرافیکی همین که بتونم نمایش بدم که چن کیلوبایت از فایل تا حالا آپلود شده کافی هست.

من توی پروژه از زبان VB استفاده می کنم ولی بنا به دلایلی فایل upload را به صورت فصحه HTML ایجاد می کنم و submit فرم را از طریق javascript انجام میدم. کل این فرم هم توی یک iframe که توسط جاوااسکریپت ایجاد میشه قرار داده شده.

حالا تنها مشکل اینه که بتونم توسط httphandler یا httpmodule مقدار بایت هایی که تا حالا آپلود شده را محاسبه کنم و از طریق جاوا اسکریپت به کاربر نشون بدم.

در حال حاضر من یک فایل upload.aspx دارم که فایل به سمت اون POST میشه و اون هم ذهیره میکنه روی سرور و فکر میکنم نیاز به یک فایل ashx هم باشه تا بتونم مقدار بایت های آپلود شده را بدست بیارم.

ولی نحوه ایجاد و تنطیمات ashx و ارتباط لون با javascript برای نمایش لحظه ای مقدار بایت آپلود شده را نمی دانم.

لطفا در این خصوص بنده را راهنمایی بفرمایید.

باتشکر فراوان./

m.yazdian
سه شنبه 24 دی 1392, 08:39 صبح
دوستان نظری ندارند؟

BahmanDB
سه شنبه 24 دی 1392, 08:58 صبح
دوست من از این نمونه مثال می تونی استغاده کنی


http://www.aspsnippets.com/Articles/Implement-File-Size-Restriction-Validation-using-jQuery.aspx

m.yazdian
سه شنبه 24 دی 1392, 09:41 صبح
جناب بهمن از راهنمایی شما کمال تشکر را دارم.

من بیشتر تمایل دارم که از جاوااسکریپت استفاده کنم برای نمایش status فایل در حال آپلود به جای فلش.

آیا راهی هست که به جای فلش از جاوا اسکریپت استفاده کنیم؟

ضمنا مقادیر فایل در حال آپلود را چجوری میشه بدست آورد؟ مثل میزان بایت آپلود شده تا الان

m.yazdian
سه شنبه 24 دی 1392, 10:30 صبح
من فایل به این صورت دریافت می کنم و روی سرور مینویسم:


If Request.Files.Count > 0 Then
Dim bytes As Integer = 0
Dim byffersize As Integer = 1
Dim byffer(byffersize) As Byte
Dim uploaded As Double = 1
Dim fileSize As Double = Request.Files(0).ContentLength

Dim ps As HttpPostedFile = Request.Files(0)
Dim fs As FileStream = New FileStream(Server.MapPath("test.jpg"), FileMode.Create)

While (uploaded < fileSize)
bytes = ps.InputStream.Read(byffer, 0, byffersize)
fs.Write(byffer, 0, bytes)
uploaded += bytes
End While

fs.Dispose()
fs.Close()
End If


حالا نیاز دارم به صورت لحظه ای یا با ید فانکشن تایمر هر 1 ثانیه یک بار مقدار uploaded را به کاربر نمایش بدم.

لطفا راهنمایی کنید

m.yazdian
سه شنبه 24 دی 1392, 11:05 صبح
دوستان یک لطفی کنند..!!!

farhadscript
سه شنبه 24 دی 1392, 11:09 صبح
من یه کدی نوشته بودم باحلقه که درصد حجمی اضافه شده به درایو رو توی پروگرس بار نمایش بده تا 100 درصد بعد از اینکه اجراش کردم هنگ میکرد!

m.yazdian
سه شنبه 24 دی 1392, 11:53 صبح
فکر نمی کن منیتور کردن کل دریار کار زیاد جالبی باشه...!!!

ممکنه چندید نظر به صورت هم زمان در حال آپلود کردن فایل باشند.

به نظر من باید فایلر در حال آپلود را (در همان Session) مانیتور کرد که چقدر بایت ارسال شده...!!!

در این خصوص اگرراه حلی بهنظر شما میرسه لطفا دریغ نفرمایید./

باتشکر