PDA

View Full Version : در خواست راهنمایی برای progress bar



iranwz
سه شنبه 30 مهر 1387, 12:27 عصر
سلام
با دیدن انجمن خوبتون خیلی خوشحال شدم
و تصمیم گرفتم یکی از سوالاتی که مدت هاست پاسخی براش پیدا نکردم را در اینجا مطرح کنم:قلب:

می خواستم ببینم آیا با php امکان انتقال فایل با progress bar (نمایش درصد آپلود شده) از کامپیوتر هست یا نه ؟:اشتباه:

اسکریپت هایی که برای این کار پیدا کرم اکثرا با Perl و cgi بودند که به درد من نمی خوره
من میخوام فقط php یا ajax باشه

بنظرم باید امکان پذیر باشه چون اسکریپتی پیدا کردم که اینکار رو میکنه ولی از سرور به سرور
نه از کامپیوتر به سرور !
اتفاقا progress bar این اسکریپت خیلی خوبه !
اگر بشه همین اسکریپت رو طوری تغییر داد که از هارد کامپیوتر هم بشه آپلود کرد ، محرکه میشه!

اسکریپت رو در فایل پیوست همین پست گذاشتم
اگر کمک کنین ممنون میشم:چشمک:

cybercoder
سه شنبه 30 مهر 1387, 13:34 عصر
الان در جوملا 1.5 این قضیه داره استفاده می شه. نمونه هاش هم رو وب زیاده نمی دونم چرا برای شما مشکل شده
یه نمونش http://www.devpro.it/upload_progress/

vahid4134
سه شنبه 30 مهر 1387, 13:49 عصر
همه اینها نیاز دارند که اکسشن
http://pecl.php.net/package/uploadprogress
نصب بشه

cybercoder
سه شنبه 30 مهر 1387, 14:57 عصر
همه اینها نیاز دارند که اکسشن

لزومی نداره که از extension استفاده بشه ( اونم البته همین کار و می کنه ) حجم فایل Temp رو هنگام آپلود اگر متداوماً اندازه گیری کنید مقدار فایل رو در زمان خواهید داشت و می تونید با استفاده از جاوا اسکریپت یا فلش براش Gauge بذارید.
همین طور که در لینک قبلی که دادم همین عمل انجام شده

موفق باشید

zoghal
سه شنبه 30 مهر 1387, 23:46 عصر
چطور امکانش هست هنگامی که فایل داره آپلود میشه ما حجم فایل تمپ رو چک کنیم؟

iranwz
چهارشنبه 01 آبان 1387, 09:20 صبح
ممنون از راهنمایی شما
منتها من یک مبتدی هستم
ولی فکر نمی کنم این قدر ساده باشه
شما یک نمونه اسکریپت واسه من بزارید که این کار رو بکنه و در صد واقعی آپلود رو به من بده !
هر چی گشتم حتما در کنار php یک perl یا cgi هم گذاشتن که در cgi-bin کپی کنم !
ولی من اینو نمی خوام

اگر شما بتوانید اسکریپتی که گذاشتم رو طوری تغییر بدید که واسه آپلود از کامپیوتر هم form داشته باشه تا آخر عمر مدیونتون میشم

این رو هم بگم که من دسترسی کامل به سرور دارم و هر کاری می تونم بکنم
منتها فکر نکنم نیازی به اکستنشن و... باشه چون الان همین اسکریپتی که گذاشتم به راحتی از سرور به سرور فایل رو منتقل میکنه و در صد واقعی را هم نشون میده

vahid4134
چهارشنبه 01 آبان 1387, 11:23 صبح
ببینید مشکل یه جایی هست که از کجا بفهمیم که فایل upload شده کدوم فایل temp هست از طرف دیگه حجم کل فایل چقدر هست؟
من اون اسکریپت نمی دونم چیکار می کنه.
برای سرور به سرور مشکلی نداره چون چیز مشخصی هست و نام فایل هم مشخص هست و میشه این کار رو کرد اما برای از کلاینت به سرور من چیزی به ذهنم نمی رسه که اصلا چه جوری نام فایل temp رو به دست بیاریم
اما با استفاده از اکسشن که گفتم
شما باید یک فیلد مخفی که نامش UPLOAD_IDENTIFIER باشه رو هم بزارید و یک id منحصر به فرد بهش بدید و بعد که برای upload ارسال میشه هر وقت که همین id رو به تابع uploadprogress_get_info که یک پارامتر (همون ID) رو می گیره بریزید یک آرایه از اطلاعات رو به شما میده
نمونه هم می خواید که با prototype کار می کنه
http://undesigned.org.za/2008/07/06/simple-php-upload-progress-meter-using-prototype
هست

iranwz
چهارشنبه 01 آبان 1387, 18:10 عصر
از دوستان کسی هست یک اسکریپت واسه من بزاره و که بعد از آپلود لینک بده ؟

zoghal
پنج شنبه 02 آبان 1387, 00:03 صبح
تا اونجا هم من میدونم بعد از آپلود شدن کامل فایل در فولدر تمپ ما میتونیم اسمش رو داشته باشیم.

حالا نمی دونم واقعا راهی داره که این موضوع رو فهمید.
اقای cybercoder (http://barnamenevis.org/forum/member.php?u=8250) لطفا میشه راهنمایی نمائید

as13851365
پنج شنبه 02 آبان 1387, 08:19 صبح
من هم مشتاق این جور کارها هستم برای نمونه هم اگر شما به هاست parsaspace رفته باشید و یک فایل رو بخواهید آپلود کنید به صورت درصد برای شما نشون می ده که چقدر از فایل آپلود شده !

برای من که اولین بارم بود چنین کاری رو دیدم برام خیلی جالب بود !
فکر کنم بیشتر با آژاکس بشه همجین کاری رو کرد یعنی اول باید اندازه فایل رو داشته باشی بعد اندازه اون مقدار از فایلی رو که در سرور قرار گرفته رو داشته باشی ! بعد در مدت زمانی دستوراتی رو برای نمایش درصد آپلود به صفحه ارسال کنی !

اگر کسی از دوستان اطلاعات کاملی در این باره بده خیلی ممنونش می شم !
مشکل من بیشتر با اندازه فایل ها است یعنی چطوری می شه اندازه فایل رو قبل از این که آپلود بشه به دست آورد و چطوری می شه اندازه آن مقدار از فایلی رو که تا حالا آپلود شده است رو به دست آورد ! اگه این دوتا رو داشته باشیم بیشتر مشکلات حل می شه

فقط می مونه نمایش در مرورگر که اونم باید کمی آژاکس کار کنیم !

iranwz
پنج شنبه 02 آبان 1387, 21:42 عصر
ما منتظریم به جواب برسیم ! ولی نرسیدیم !

yaqubian
پنج شنبه 02 آبان 1387, 21:58 عصر
دوست عزیز
ببینید این بدردتون می خوره:
http://t.wits.sg/misc/jQueryProgressBar/demo.php
لینک دانلودش هم بالای سایت هست.
موفق باشید

zoghal
جمعه 03 آبان 1387, 00:06 صبح
این رو با یکی از پلاگین های چی کوئری هست، که برای نمایش پیشرفت باید
extension=uploadprogress.so

رو نصب داشته باشیم رو سرور

اما دوست عزیزمون یه یک موضوع اشاره کردن که به نظر من امکانش نیس که هنگام آپلود بشه سایز فایل تمپ رو بدست آورد

vahid4134
جمعه 03 آبان 1387, 19:13 عصر
این رو با یکی از پلاگین های چی کوئری هست، که برای نمایش پیشرفت باید
extension=uploadprogress.so

رو نصب داشته باشیم رو سرور

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

iranwz
شنبه 04 آبان 1387, 18:28 عصر
دوست عزیز
ببینید این بدردتون می خوره:
http://t.wits.sg/misc/jQueryProgressBar/demo.php
لینک دانلودش هم بالای سایت هست.
موفق باشید


متاسفانه در لوکال هاست چک کردم (xampp) ایراد میگرفت !

اینم ایرادش :


{"success":true,"message":"Filename declared as ''.\nUploaded 0 file.\n"}

Arman_gh
شنبه 04 آبان 1387, 19:06 عصر
به غیر از افزونه‌ی که دوستان نام بردند اگر افزونه‌ی APC را هم هاست‌تان پشتیبانی کند می‌شود progress bar را پیاده‌سازی کرد. اینم یک نوشتار در این مورد با کد.
http://www.phpriot.com/articles/php-ajax-file-uploads