سؤال

لا أحد يعرف من أي طرق لإنشاء ملف تحميل شريط التقدم في PHP?لقد سمعت كثيرا أنه من المستحيل.

لدي فكرة واحدة ، ولكن ليس متأكدا مما إذا كان سوف تعمل:عادي تحميل الملف, ولكن بدلا من ذلك تقدم إلى iframe.عندما يكون هذا هو المقدم, تخزين معلومات الملف (حجم و درجة الحرارة في الموقع) في الدورة.في نفس الوقت تبدأ اياكس دعوة إلى كل قول 10 ثوان إلى التحقق من حجم الملف بالمقارنة مع حجم تخزينها في الدورة.هذا من شأنه أن يعود حجم اياكس ثم شريط التقدم سيكون الحجم و ربما عرض تحميلها حجم للمستخدم.

الأفكار ؟

هل كانت مفيدة؟

المحلول

ويمكنك محاولة YUI أو <وأ href = "HTTP: // شبكة الاتصالات العالمية. google.com/search؟q=prototype+upload+progress "يختلط =" نوفولو noreferrer "> نموذج أو <وأ href =" http://www.google.com/search؟q=jquery+upload+ تقدم "يختلط =" نوفولو noreferrer "> مسج

نصائح أخرى

وأنت أحسب حد كبير على كيفية القيام بذلك. والمشكلة الرئيسية هي التي عادة لا يستطيعون الوصول إلى حجم الملف الذي تم تحميله حتى يتم ذلك تحميلها.

وهناك حلول لهذه: تمكين APC، يمكنك الوصول إلى هذه المعلومات إذا قمت بتضمين حقل يسمى "APC_UPLOAD_PROGRESS" واستخدام apc_fetch () لاسترداد الإدخال المؤقت مع الحالة.

وهناك أيضا البرنامج المساعد دعا uploadprogress ولكنها ليست موثقة بشكل جيد للغاية ولا يعمل على ويندوز (آخر راجعت أي حال).

وبديل ذلك هو استخدام فلاش لفعل ذلك. انظر مخطوطات مثل FancyUpload .

وقبل أن يأتي APC طول اضطررت لكتابة سيناريو CGI في C الذي كتب المعلومات إلى ملف نصي. APC يبدو وكأنه وسيلة أفضل بكثير للقيام بذلك على الرغم من الآن.

وآمل أن يساعد هذا.

حتى الآن الطريقة الأكثر شيوعا للقيام بذلك هي SWFUpload: http://www.swfupload.org/

ومع ذلك ، هو ممكن مع خالص PHP فقط من الصعب جدا التجريبية.سوف نرى ما اذا كان يمكنني العثور على وصلة.

تحرير:وفقا تعليقات على php.net كما 5.2 هناك ربط للتعامل مع تقدم التحميل. http://us.php.net/features.file-upload#71564

مزيد من التوضيح:

راسموس' على سبيل المثال:

ومن PHP 5.4 هو في تمديد الدورة: HTTP: // بي. شبكة // دليل / رر / session.upload-progress.php

في PHP النقي، وكنت على صواب: ليس من الممكن

.

إذا اياكس ify ذلك، ثم هل يمكن أن تفعل ما كنت واصفا. متر التقدم الوحيدة التي رأيتها على الإطلاق هي في جافا سكريبت أو فلاش، رغم أن أتصور سيلفرلايت يمكن أن تفعل ذلك أيضا.

"المدرسة القديمة" ، ولكن PHP + بيرل الأسلوب: http://www.raditha.com/php/progress.php

في رأيي، أفضل / أسهل حل هو بناء القطعة فلاش صغيرة، التي تتكون من زر 'رفع' وشريط تقدم. يعطي فلاش أنت تغذية مرتدة مفصلة جدا على مقدار البيانات التي تم تحميلها حتى الآن، ويمكنك بناء شريط التقدم لطيفة بناء على ذلك. لا يتطلب الاقتراع غير الكفء للخادم، في واقع الأمر لا يتطلب أية تغييرات على الإطلاق إلى رمز الخادم الخاص بك. جوجل عن "رافع فلاش" وستجد الكثير من الناس قد كتبت بالفعل هذه الحاجيات وسعداء لبيعها لك لباك.

وانصح تبحث في SWFUpload لتحقيق ما تريد. انها مرنة إلى حد ما ويدعم طوابير من الملفات، وذلك حتى يمكن التعامل مع تحميل متعددة ملف.

وأنت تريد بالتأكيد للذهاب مع digitgerald في FancyUpload . انها موتولز وswfuplaod مقرها، والرياضة طابور لطيفة مع statusses والتقدم وايتا الخ انها حقا سليكست طريقة رأيت لتحميل الملفات. لحالتي استخدام الشخصية إيف استخدامه للسماح للعميل اختيار 1.2 غيغابايت من الملفات PDF وتحميلها. الأحدث منها الحصول على تسمية وتعيين إصدار تلقائيا، وتخطي نفسه، وما إلى ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top