PHP中curl模擬post上傳及接收文件


public function Action_Upload(){

     $this->path_config();

    exit();

    $furl="@d:\develop\JMFrameworkWithDemo.rar";

    $url= "http://localhost/DemoIndex/curl_pos/";

    $this->upload_file_to_cdn($furl, $url);

}

public function upload_file_to_cdn($furl,$url){

    //  初始化

    $ch = curl_init();

    // 要上傳的本地文件地址"@F:/xampp/php/php.ini"上傳時候,上傳路徑前面要有@符號

    $post_data = array (

      "upload" => $furl

    );

    //print_r($post_data);

    //CURLOPT_URL 是指提交到哪里?相當於表單里的“action”指定的路徑

    //$url = "http://localhost/DemoIndex/curl_pos/";

    //  設置變量

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//執行結果是否被返回,0是返回,1是不返回

    curl_setopt($ch, CURLOPT_HEADER, 0);//參數設置,是否顯示頭部信息,1為顯示,0為不顯示

    //偽造網頁來源地址,偽造來自百度的表單提交

    curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com");

    //表單數據,是正規的表單設置值為非0

    curl_setopt($ch, CURLOPT_POST, 1);

    curl_setopt($ch, CURLOPT_TIMEOUT, 100);//設置curl執行超時時間最大是多少

    //使用數組提供post數據時,CURL組件大概是為了兼容@filename這種上傳文件的寫法,

    //默認把content_type設為了multipart/form-data。雖然對於大多數web服務器並

    //沒有影響,但是還是有少部分服務器不兼容。本文得出的結論是,在沒有需要上傳文件的

    //情況下,盡量對post提交的數據進行http_build_query,然后發送出去,能實現更好的兼容性,更小的請求數據包。

    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

    //   執行並獲取結果

    curl_exec($ch);

    if(curl_exec($ch) === FALSE)

    {

      echo "<br/>"," cUrl Error:".curl_error($ch);

    }

    //  釋放cURL句柄

    curl_close($ch);

    echo "aaa45";

}

function action_curl_pos(){

    var_dump($_FILES);

    $aa= move_uploaded_file($_FILES["upload"]["tmp_name"], "/wamp/tools/1.rar");

    if($aa){

      echo "11";

    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM