نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: درخواست راهنمايي براي محدود كردن فايل دانلود

  1. #1
    عضو انجمن aghaee آواتار ها
    تاریخ عضویت
    Dec 2009
    محل سکونت
    نت
    نوشته ها
    492
    تشکر تشکر کرده 
    497
    تشکر تشکر شده 
    319
    تشکر شده در
    214 پست

    پیش فرض درخواست راهنمايي براي محدود كردن فايل دانلود

    سلام
    فرض كنيد من پروژه http://www.webhostingtalk.ir/f148/14266/ رو به درستي راه اندازي كردم
    حال ميخوام اين يوزرهايي كه ثبت نام كردن بتونن يكسري فايل كه من معرفي مي كنم رو دانلود كنم!‌

    مسئله مهم اينجاست كه نمي خوام غير از يوزرهاي كسي به اون فايل ها دسترسي داشته باشه
    آخه امكان داره لينك بيفته دست يكي ديگه اون موقع به راحتي ميتونه فايل رو دانلود كنه بدون اينكه عضويت داشته باشه

    نمي شه واسه فايل هاي zip هم session گذاشت كه فقط يوزها بتونن دانلود كنن؟


    مسئله دوم اينكه مثلا يوزر ثبت نام كرده و من ميخوام بعد از 6 ماه نام كاربريش غير فعال بشه! اينو چطوري ميتونم انجام بدم؟
    ممنوون ميشم راهنمايي كنيد..

    با تشكر فروان

  2. # ADS




     

  3. #2
    عضو دائم Rezash آواتار ها
    تاریخ عضویت
    Feb 2010
    محل سکونت
    مشهد
    نوشته ها
    1,923
    تشکر تشکر کرده 
    889
    تشکر تشکر شده 
    2,385
    تشکر شده در
    1,535 پست

    پیش فرض پاسخ : درخواست راهنمايي براي محدود كردن فايل دانلود

    اين تاپيك رو ببينيد :
    http://www.webhostingtalk.ir/f147/7863/
    علاوه بر محدود كردن دانلود براي اعضا ميشه كاري كرد كه مثلا لينك هاي اعضاي يا مهمانان يا گروه خاصي از اعضا قابليت resume و سرعت مشخص و ... داشته باشه (با كدهاي موجود در تاپيك بالا)
    بک آپ بگیرید قبل از آنکه پشیمان شوید!
    تشخیص سیستم مدیریت محتوای سایت - سایت شخصی

  4. تعداد تشکر ها از Rezash به دلیل پست مفید


  5. #3
    عضو جدید phpniki آواتار ها
    تاریخ عضویت
    Jan 2011
    محل سکونت
    اینترنت
    نوشته ها
    15
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    14
    تشکر شده در
    12 پست

    پیش فرض پاسخ : درخواست راهنمايي براي محدود كردن فايل دانلود

    با سلام
    اگه یه فلدر داری که می خوای اون فلدر و تمام فلدر های زیر مجموعشو محدود کنی و کاربرا حتما با یوزر و پس دانلود کنن می تونی از سورس زیر استفاده کنی
    تو این مثال فلدر files رو محدود می کنی
    این کد رو تو فایل .htaccess کپی کنید

    کد:
    Options +FollowSymLinks -Indexes
    RewriteEngine On
    RewriteBase /
    
    RewriteRule   ^files/(.*)$  download.php?filename=$1

    این کد رو تو فایل download.php قرار بدید:


    کد:
    <?
    //sample filename = Hamed/myfile.zip
    
    $file_path = $_REQUEST['filename'];
    list($username,$file_name) = explode("/",$file_path);
    
    
    $member_info = checkLogin(); // -1 means user is not login
    if($member_info != -1)
        $LoginSuccessful    = true;
    else
    {
        $LoginSuccessful    = false;
        $Logout             = false;    
    }
    $CurrentUrl         = 'http://' . $_SERVER['HTTP_HOST'] . '/download.php';
     
    
    // if user send the username and password  
    if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])){
     
        $usr = $_SERVER['PHP_AUTH_USER'];
        $pwd = $_SERVER['PHP_AUTH_PW'];
         
        $member_info = login($usr,$pwd,1);
        if($member_info != -1)
            $LoginSuccessful    = true;
        else
            $LoginSuccessful    = false;
        if ($usr == 'reset' && $pwd == 'reset' && isset($_GET['Logout'])){ 
            $Logout = true;
        }
        
    }
     
    if ($Logout){
     
        print 'You are now logged out.';
        print '<br/>';
        print '<a href="http://'.$CurrentUrl.'">Login again</a>';
    }
    elseif ($LoginSuccessful){
        downloadFile("files/$file_path",$file_name,900,false);
    
    }
    else 
    {
        header('WWW-Authenticate: Basic realm="Top-secret area"');
        header('HTTP/1.0 401 Unauthorized');
     
        print "Sorry, login failed!\n";
        print "<br/>";
        print '<a href="http://' . $CurrentUrl . '">Try again</a>';
     
    }
    
    function downloadFile($fileLocation,$fileName,$maxSpeed = 100,$doStream = false){
        if (connection_status()!=0) return(false);
        $extension = strtolower(end(explode('.',$fileName)));
    
        $fileTypes['swf'] = 'application/x-shockwave-flash';
        $fileTypes['pdf'] = 'application/pdf';
        $fileTypes['exe'] = 'application/octet-stream';
        $fileTypes['zip'] = 'application/zip';
        $fileTypes['doc'] = 'application/msword';
        $fileTypes['xls'] = 'application/vnd.ms-excel';
        $fileTypes['ppt'] = 'application/vnd.ms-powerpoint';
        $fileTypes['gif'] = 'image/gif';
        $fileTypes['png'] = 'image/png';
        $fileTypes['jpeg'] = 'image/jpg';
        $fileTypes['jpg'] = 'image/jpg';
        $fileTypes['rar'] = 'application/rar';    
        
        $fileTypes['ra'] = 'audio/x-pn-realaudio';
        $fileTypes['ram'] = 'audio/x-pn-realaudio';
        $fileTypes['ogg'] = 'audio/x-pn-realaudio';
        
        $fileTypes['wav'] = 'video/x-msvideo';
        $fileTypes['wmv'] = 'video/x-msvideo';
        $fileTypes['avi'] = 'video/x-msvideo';
        $fileTypes['asf'] = 'video/x-msvideo';
        $fileTypes['divx'] = 'video/x-msvideo';
    
        $fileTypes['mp3'] = 'audio/mpeg';
        $fileTypes['mp4'] = 'audio/mpeg';
        $fileTypes['mpeg'] = 'video/mpeg';
        $fileTypes['mpg'] = 'video/mpeg';
        $fileTypes['mpe'] = 'video/mpeg';
        $fileTypes['mov'] = 'video/quicktime';
        $fileTypes['swf'] = 'video/quicktime';
        $fileTypes['3gp'] = 'video/quicktime';
        $fileTypes['m4a'] = 'video/quicktime';
        $fileTypes['aac'] = 'video/quicktime';
        $fileTypes['m3u'] = 'video/quicktime';
    
        $contentType = $fileTypes[$extension];
        
        
        header("Cache-Control: public");
        header("Content-Transfer-Encoding: binary\n");
        header('Content-Type: $contentType');
    
        $contentDisposition = 'attachment';
        
        if($doStream == true){
            $array_listen = array('mp3','m3u','m4a','mid','ogg','ra','ram','wm',
            'wav','wma','aac','3gp','avi','mov','mp4','mpeg','mpg','swf','wmv','divx','asf');
            if(in_array($extension,$array_listen)){ 
                $contentDisposition = 'inline';
            }
        }
    
        if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {
            $fileName= preg_replace('/\./', '%2e', $fileName, substr_count($fileName,
    '.') - 1);
            header("Content-Disposition: $contentDisposition;filename=\"$fileName\"");
        } else {
            header("Content-Disposition: $contentDisposition;filename=\"$fileName\"");
        }
        
        header("Accept-Ranges: bytes");   
        $range = 0;
        $size = filesize($fileLocation);
        
        if(isset($_SERVER['HTTP_RANGE'])) {
            list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']);
            str_replace($range, "-", $range);
            $size2=$size-1;
            $new_length=$size-$range;
            header("HTTP/1.1 206 Partial Content");
            header("Content-Length: $new_length");
            header("Content-Range: bytes $range$size2/$size");
        } else {
            $size2=$size-1;
            header("Content-Range: bytes 0-$size2/$size");
            header("Content-Length: ".$size);
        }
            
        if ($size == 0 ) { die('Zero byte file! Aborting download');}
        set_magic_quotes_runtime(0); 
        $fp=fopen("$fileLocation","rb");
        
        fseek($fp,$range);
      
        while(!feof($fp) and (connection_status()==0))
        {
            print(fread($fp,1024*$maxSpeed));
            flush();
            ob_flush();
            sleep(1);
        }
        fclose($fp);
               
        return((connection_status()==0) and !connection_aborted());
    } 
    ?>

  6. تعداد تشکر ها از phpniki به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 27
    آخرين نوشته: July 1st, 2017, 01:01
  2. پاسخ ها: 0
    آخرين نوشته: January 20th, 2014, 00:43
  3. راهنمايي خريد هاست و دامين
    توسط mehdihassani55 در انجمن هاست اشتراکی
    پاسخ ها: 0
    آخرين نوشته: October 14th, 2012, 12:35
  4. پاسخ ها: 10
    آخرين نوشته: April 15th, 2011, 23:25
  5. راهنمايي براي خريد هاست دانلود
    توسط deathdemon در انجمن درخواست هاست اشتراکی
    پاسخ ها: 8
    آخرين نوشته: October 8th, 2010, 18:49

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •