النتائج 1 إلى 5 من 5

الموضوع: احتاج مساعدتكم في كود بسيط جدا :)

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    144

    احتاج مساعدتكم في كود بسيط جدا :)



    السلام عليكم و رحمة الله
    تحية طيبة وبعد
    قمت قبل ايام باضافة مركز تحميل بالموقع
    و لان الملفات ضخمة و التحميل مكثف خلال الايام الاولى فقد رغبت بتحديد التحميل عند 30 كيلوبايت
    و قبل ذلك فيتم تشفير رابط الملف
    هل هنالك كود معين لتحديد التحميل يشترط فيه ان لايتأكد من وجود الملف من عدمه كما يسمح بالتعامل مع روابط مشفرة اي غير مباشرة
    فانا قد بحثت وجدت كود يشترط رابطا مباشرا و للاسف لا استطيع ذلك
    و شكرا لكم





    التعديل الأخير تم بواسطة الحفصي ; 16-07-2009 الساعة 05:51 PM


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    لم أدرس التعامل مع الملفات بعد
    إعذرنى






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    144


    تشكراتي لك اخي اخواني فور ايفر
    و الحل قريب بحول الله






  4. #4


    لدي دالة لعمل الأمر ولكن لها مميزات وعيوب

    مميزات ان تستخدم ال php في القراءة للملف علي السيرفر وإرسالة للزبون هي

    1- يمكنك منع التحميل من خارج الموقع لكون الزوار لا تعرف المسار الحقيقي للملف
    2- يمكنك ان تحدد سرعة التحميل
    3- يمكنك منعه من تحميل اكثر من ملف في نفس الوقت بتتبع ال ip
    4- يمكنك قياس نسبة ما حمله بالكيلو

    إلخ

    عيوبها

    1- إشغال الأباتشي طوال عملية التحميل فأنت بدل ما ترسل رابط الملف من علي السيرفر للزبون مباشرة ليحمله فأنت تقرأها بت ب بت وتعطيه البيانات بعد قرائتها وهذا يضيف حمل كبير طوال فترة التحميل لهذا فدائما تقوم المواقع الكبري بفصل سيرفر التحميل عن سيرفر الموقع

    عموما تفضل

    كود PHP:
    $local_file 'file.zip';
    $download_file 'name.zip';

    // set the download rate limit (=> 20,5 kb/s)
    $download_rate 20.5;
    if(
    file_exists($local_file) && is_file($local_file))
    {
        
    header('Cache-control: private');
        
    header('(anti-spam-content-type:) application/octet-stream');
        
    header('Content-Length: '.filesize($local_file));
        
    header('Content-Disposition: filename='.$download_file);

        
    flush();
        
    $file fopen($local_file"r");
        while(!
    feof($file))
        {
            
    // send the current file part to the browser
            
    print fread($fileround($download_rate 1024));
            
    // flush the content to the browser
            
    flush();
            
    // sleep one second
            
    sleep(1);
        }
        
    fclose($file);}
    else {
        die(
    'Error: The file '.$local_file.' does not exist!');

    تقوم الدالة كل ثانية بقراءة الحجم اللي تريده من علي السيرفر وليكن 30 كيلو ثم ترسله للزبون ثم تتوقف ثانية وهكذا
    وبالتالي تصبح السرعة 30 كيلو في الثانية

    بالتوفيق






  5. #5
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    144


    بارك الله فيك اخي المجروح على كل تلك التوضيحات و قد وفقت في تركيبها بحمد الله فبيض الله وجهك و جزاك كل خير
    لاحقا و بالاتصال بمدير السيرفر اقترح علي تركيب ال mod_bw الذي يعمل بنفس الفكرة لكن بدون php و غيره
    الجميل في الموديل انه يسمح لك بتحديد حجم معين من الملفات بحيث يقوم السيرفر بتحديد التحميل انطلاقا منه
    بمعنى ان الملف الذي يكون حجمه اقل من 1 ميقا مثلا يحمل بالسرعة العادية ( القصوى) و ما زاد عن ذلك فيتم تحديد سرعته و هذه ميزة رائعة ايضا صححت مفهوما لدي عن هذا الموديل و قمت بتحديد السرعة عند 25 كيلوبايت لما جاوز 1 ميقا
    بارك الله في الجميع و نتمنى الفائدة لهم..










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض