هل استكمال التحميل نظام خاص له برمجة و طريقة خاصة ؟؟
المبرمج عندي مو عارف كيف يسوي الاستكمال للتحميل
ابغى من الاخوان يوضحون لي ما هيت هذا النظام ؟
و شكرا
هل استكمال التحميل نظام خاص له برمجة و طريقة خاصة ؟؟
المبرمج عندي مو عارف كيف يسوي الاستكمال للتحميل
ابغى من الاخوان يوضحون لي ما هيت هذا النظام ؟
و شكرا
اخي دع المبرمج يتابع هذى الصفحه
PHP: fread - Manual
يوجد الحل فيها
__________________
متى استعبدتم الناس وقد ولدتهم أمهاتهم أحرار........
-----------------------------------
شبكة الشعر الادبيه
لعمل هذه الميزة يجب ان تفهم كيف يعمل إكمال التنزيل (resume) ... عندما يتصل شخص بالخادوم ويحاول ان ينزل ملف ما فانه يرسل له رسالة في الرأس يمكن ان تفعل ذلك باستخدام الداله header وعند انقطاء الاتصال ومعاودة التنزيل مره اخرى يرسل العميل ان يريد بقية الملف ولا يريده من البدايه فتقوم انت بارسال بقية الملف وتحدد ذلك من خلال الداله header.
الخطوتين التالية في حالة طلب الملف لاول مره:
- اولا قبل طباعة الملف ارسل الكود الذي يبينانك تدعم اكمال التنزيل.
- ارسل حجم الملف بالبايت حتى يتمكن العميل من معرفة ذلك .كود PHP:
header("Accept-Ranges: bytes");
في حالة طلب الملف مره اخرى(أي يريد إكمال تنزيل الملف): يمكن معرفة ذلك من خلال الداله getallheaders والتى ستعيد لك بينات الطلب المرسل أو من خلال المصفوفه $_SERVER.كود PHP:
header("Content-Length: 1024");//فرضا 1024 بايت
- في حال وجود Range في الطلب سوف نعرف انه يطلب محتوى محدد من الملف سوف نحصل على قيمتة ثم نرسل له المحتوى الذي يريده .
هذا مثال مكتمل يحتاج الى مراجعة كاملة
مراجعكود PHP:
<?php
$fn = 'myfile.dat';
$size = filesize($fn);
$header = getallheaders();
$fp = fopen($fn,'r');
if($headers['Range']){
header('HTTP/1.0 206 Partial Content');
list($start, $end) = explode('-',str_replace('bytes=','',$headers['Range']));
header ('Content-Range: bytes '.$start.'-'.$end.'/'.$size);
header ('Content-Length: '.($start-$end));
fseek($fp, $start);
}else {
header("Accept-Ranges: bytes");
header("Content-Length: ".$size);
}
while (!feof($fp)) {
echo fread($fp, 1024);
}
fclose($fp);
?>
All news about PHP
HTTP/1.1: Header Field Definitions
PHP: getallheaders - Manual
__________________
ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
الاتصال: daif@daif.net او جوال: 0556639884
الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .