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

الموضوع: رد: مشكلة رفع ملف من موقعي لموقع تحميل أخر باستخدام CURL

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2008
    المشاركات
    309

    رد: مشكلة رفع ملف من موقعي لموقع تحميل أخر باستخدام CURL



    السلام عليكم و رحمة الله و بركاته

    هناك مشكلة لم استطع التوصل الي حلها

    و هي كالتالي .. لدي موقع اسمه http://www.site.com و نرمز له بالرمز A و أريد ان اقوم برفع ملف من عليه الي موقع تحميل و ليكن اسمه مثلا upload.com و نرمز له بالرمز B باستخدام CURL .. بمعني أخر اريد من الاسكربت ان يقوم برفع ملف من موقعي A الي موقع التحميل B اتوماتيكيا باستخدام CURL

    أولا : هذا كود HTML موقع التحميل و الذي نرمز له بالرمز B و هو كالتالي :

    كود PHP:
    <form id="uploader" name="uploader" action="http://www.upload.com/upload.php" method="post" enctype="multipart/form-data" onsubmit="form_submit();">

    <
    input name="file_1" id="file_1" size="50" type="file">
    <
    input name="file_2" id="file_2" size="50" type="file">

    <
    br>

    <
    button type="submit" name="submitr" class="btn" id="submitr"><span>Upload</span></button>

    <
    div class="clr"></div>
    </
    form
    حيث ان http://www.upload.com/upload.php هو لينك ملف البي اتش بي الخاص برفع الملفات و الموقع يستخدم POST و يه خانتان يمكن رفع ملفين في نفس الوقت



    و تلك هي محاولتي في البي اتش بي و لكن لم تثبت نجاحها حيث أن المتغير $the_file هو الملف الذي اريد ان يتم رفعه بطريقة مباشرة من موقعي A الي موقع الرفع B بدون ان اضطر الي تحميله علي جهازي و من ثم رفعه مرة اخري .. و $target_site هو موقع الابلود الذي اريد رفع الملف عليه

    كود PHP:
    <?php

    $the_file 
    "cache.1.2.zip";
    $target_site "http://www.upload.com/upload.php";

    $ch curl_init();
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_VERBOSE0);
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_HTTPHEADER, array("(anti-spam-content-type:) multipart/form-data"));
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0Mozilla/4.0 (compatible;)");
    curl_setopt($chCURLOPT_URL"$target_site");
    curl_setopt($chCURLOPT_POSTtrue);
    $post = array(
        
    'file_1' => "$the_file"
    );
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    $response curl_exec($ch);
    if(
    curl_errno($ch)) {
        echo 
    'Error: ' curl_error($ch);
    }
    else {
        echo 
    $response;
    }

    ?>


    في انتظار اقتراحاتكم







  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2010
    المشاركات
    412


    أستخدم أي برنامج من برامج ال sniff مثل مثلاُ wireshark أو http sniffer أو أضافة http watch في فاير فوكس , وراقب البيانات المرسلة للسيرفر عند الرفع , وبرمج إسكريبت لأستخلاص القيم المطلوبة من صفحة موقع الرفع , ثم ضفها إلى إسكريبتك .. . خالص ودي





    __________________
    إصبر على كيد الحسود فإن صبرك قاتله ...
    أرسل خريطة موقعك لمحركات البحث

  3. #3
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,898


    و عليكم السلام و رحمة الله و بركاته .
    يا عزيزي ، الملفات (Input file) لا ترسل في مصفوفة $_POST بل في مصفوفة منفصلة لوحدها $_FILES ، لذلك لا يمكنك ارسالها عبر cURL باستخدام الثابت CURLOPT_POSTFIELDS .
    المزيد من المعلومات من هنا :
    http://php.net/manual/en/reserved.variables.files.php
    بالتوفيق .





    __________________
    راسلني

  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    789


    وعليكم السلام

    غير الكود التالى

    كود PHP:
    $post = array(
        
    'file_1' => "$the_file"
    ); 
    الى
    كود PHP:
    $post = array(
        
    'file' => "@{$the_file}"
    ); 
    شوف مكان تواجد علامة @، فهذه تدل على ان المحتوي ملف

    وأيضاً يوجد كلاس جاهز لمثل هذه الاعمال

    http://www.phpclasses.org/package/37...sing-Curl.html





    __________________
    متى استعبدتم الناس وقد ولدتهم أمهاتهم أحرار........
    -----------------------------------
    شبكة الشعر الادبيه





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

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
0
موقع مكملات غذائية | نظارات طبية | أضف موقعك هنا