جانب الخادم ، احصل على تقدم في إرسال الملف
سؤال
في الأساس ، ما أريد القيام به هو التحقق من مقدار الملف الذي أرسله خادم الويب الخاص بي إلى عميل ، عندما يقوم العميل بتنزيل واحد. هل هذا ممكن؟ هل يوفر Apache أي وحدة/امتداد من شأنه أن يساعدني في إنجاز مهمتي؟
يمكنني استخدام Linux Distro و Apache2 و PHP5. يعتبر.
المحلول 2
حلها.
أنا ببساطة فتح الملف مع PHP الذي أريد إرساله إلى العميل.
$fh = fopen($filePath, 'r');
ثم أقوم بحساب 60 ٪ من الملفات عن طريق الكتابة
$fileSize = filesize($filePath);
$sizeFirst = floor(($fileSize / 100) * 60);
الآن يحتوي متغير SizeFirst $ على طول 60 ٪ الأولى من الملف ، في قيمة رقمية. لحساب الباقي 40 ٪ أستخدمه:
$sizeLast = $fileSize - $sizeFirst;
الآن يمكنني كتابة أول 60 ٪ ، القيام بإجراءاتي ، ثم أكتب الباقي بنسبة 40 ٪.
$dataFirst = fread($fh, $sizeFirst);
echo($dataDirst);
// Do my action here.
$dataSecond = fread($fh, $sizeSecond);
echo($dataSecond);
exit();
أحتاج إلى ضبط الرأس () ؛ قبل كتابة هذا ، يجب تعيين طول المحتوى ونوع المحتوى وتصريح المحتوى لإرسال رأس صالح و pileContent إلى العميل.
آمل أن يساعد شخص ما.
نصائح أخرى
يوفر Browser هذه الوظيفة إذا كان الملف يحتوي على مجموعة رأس "طول المحتوى" الصحيح. لماذا تريد تنفيذ هذا في صفحتك؟