/
  • نحوه اضافه کردن قابلیت resume به دانلود

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی نحوه اضافه کردن قابلیت resume به دانلود
    نویسنده پیام
    parsisport آفلاین
    عضو
    ***

    ارسال‌ها: 101
    تاریخ عضویت: ۱۳۹۰ تير ۲۰
    اعتبار: 1
    تشکرها : 84
    ( 11 تشکر در 10 ارسال )
    ارسال: #1
    نحوه اضافه کردن قابلیت resume به دانلود
    دوستان من یه پروژه ای دارم که کاربر ثبت نام میکنه اکانت مدت دار میخره و بعد میتونه موزیک دانلود کنه .
    موزیک ها هم در سرور دیگه ایه و فقط لینکش اینور تو نرم فازر ثبت میشه .
    از اونجایی که موزیک ها پولی هستن کاربر نباید ادرس فایلها رو ببینه برای همین تا اینجا مشکلی نیست
    لینک سازی میشه با تابع freed فایل خونده میشه هدر هارو تغییر میدم و میفرستم که کاربر دانلود کنه
    ولی دانلود کامل انجام نمیشه هر دفعه یه جا گیر میکنه
    کد PHP:
    $CI =& get_instance();
    $CI->load->helper('func');
    if(
    $fileData !== false){
        
    $timeexpire $fileData['time'];
        
    $now time();
        
    $file '';
        if(
    $timeexpire $now){
            
    redirect('download/time/2');
        }else{
            
    $url              str_replace(" ","%20",$fileData['url']);
            
    $fileinfo pathinfo($url);
            
    $mimType= ($fileinfo['extension'] == 'mp3') ? 'audio/mpeg' 'txt';//set mime type to mp3
            
    $fileSize curl_get_file_size($url);//get file size with curl
            
    $size$fileSize;
            
    //$fileSize= formatSizeUnits($fileSize);//convert byte to MB for file size
            
    $foundCode existfile($url);//check exists file or not and return 400 or 200          
            
    if($foundCode == 200){
               
    $handel        = @fopen($url,'r');
            }else{
                 
    redirect(base_url().'track/faild'); 
            }                
            
    $begin    1;
            
    $end      $fileSize ;
            
    $fileName basename($url);               
            if (isset(
    $_SERVER['HTTP_RANGE'])){
                if (
    preg_match('/bytes=\h*(\d+)-(\d*)[\D.*]?/i'$_SERVER['HTTP_RANGE'], $matches))
                {
                    
    $begin  intval($matches[1]);
                    if (!empty(
    $matches[2]))
                    {
                      
    $end  intval($matches[2]);
                    }
                }
            }
            if (isset(
    $_SERVER['HTTP_RANGE']))
            {
              
    header('HTTP/1.1 206 Partial Content');
            }
            else
            {
              
    header('HTTP/1.1 200 OK');
            }
             
            
    header("Content-Type: application/force-download");
            
    header('Cache-Control: public, must-revalidate, max-age=0');
            
    header('Pragma: no-cache');  
            
    header('Accept-Ranges: bytes');
            
    header('Content-Length:' . (($end $begin) + 1));
            if (isset(
    $_SERVER['HTTP_RANGE']))
            {
              
    header("Content-Range: bytes $begin-$end/$size");
            }
            
    header("Content-Disposition: attachment; filename=$fileName");
            
    header("Content-Transfer-Encoding: binary");
            
    $cur 1;
            if(
    $handel != NULL){            
                
    fseek($handel,2000,$cur);
                while(!
    feof($handel) && $cur <= $end)
                {                             
                    print 
    fread($handel$cur);
                    
    $cur += 2000;
                }
            }else{
                
    redirect(base_url()."track/faild");
            }
        }            


    کل پروسه خوندن فایل و ارسال برای دانلود کد هاش رو قرار دادم کسی اگر تجربه کار این شکلی داره راهنمائی کنه ممنون میشم
    ۱۳۹۶ خرداد ۲۸ ۰۶:۵۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS