當前位置:首頁 > PHP教程 > php應用 > 列表

PHP使用curl模擬post上傳及接收文件的方法

發布:smiling 來源: PHP粉絲網  添加日期:2019-11-26 11:08:17 瀏覽: 評論:0 

本文實例講述了PHP使用curl模擬post上傳及接收文件的方法。分享給大家供大家參考,具體如下:

  1. public function Action_Upload(){ 
  2.  
  3.      $this->path_config(); 
  4.  
  5.     exit(); 
  6.  
  7.     $furl="@d:\develop\JMFrameworkWithDemo.rar"
  8.  
  9.     $url"http://localhost/DemoIndex/curl_pos/"
  10.  
  11.     $this->upload_file_to_cdn($furl$url); 
  12.  
  13.  
  14. public function upload_file_to_cdn($furl,$url){ 
  15.  
  16.     //  初始化 
  17.  
  18.     $ch = curl_init(); 
  19.  
  20.     // 要上傳的本地文件地址"@F:/xampp/php/php.ini"上傳時候,上傳路徑前面要有@符號 
  21.  
  22.     $post_data = array ( 
  23.  
  24.       "upload" => $furl 
  25.  
  26.     ); 
  27.  
  28.     //print_r($post_data); 
  29.  
  30.     //CURLOPT_URL 是指提交到哪里?相當于表單里的“action”指定的路徑 
  31.  
  32.     //$url = "http://localhost/DemoIndex/curl_pos/"; 
  33.  
  34.     //  設置變量 
  35.  
  36.     curl_setopt($ch, CURLOPT_URL, $url); 
  37.  
  38.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//執行結果是否被返回,0是返回,1是不返回 
  39.  
  40.     curl_setopt($ch, CURLOPT_HEADER, 0);//參數設置,是否顯示頭部信息,1為顯示,0為不顯示 
  41.  
  42.     //偽造網頁來源地址,偽造來自百度的表單提交 
  43.  
  44.     curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com"); 
  45.  
  46.     //表單數據,是正規的表單設置值為非0 
  47.  
  48.     curl_setopt($ch, CURLOPT_POST, 1); 
  49.  
  50.     curl_setopt($ch, CURLOPT_TIMEOUT, 100);//設置curl執行超時時間最大是多少 
  51.  
  52.     //使用數組提供post數據時,CURL組件大概是為了兼容@filename這種上傳文件的寫法, 
  53.  
  54.     //默認把content_type設為了multipart/form-data。雖然對于大多數web服務器并 
  55.  
  56.     //沒有影響,但是還是有少部分服務器不兼容。本文得出的結論是,在沒有需要上傳文件的 
  57.  
  58.     //情況下,盡量對post提交的數據進行http_build_query,然后發送出去,能實現更好的兼容性,更小的請求數據包。 
  59.  
  60.     curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
  61.  
  62.     //   執行并獲取結果 
  63.  
  64.     curl_exec($ch); 
  65.  
  66.     if(curl_exec($ch) === FALSE) 
  67.  
  68.     { 
  69.  
  70.       echo "<br>"," cUrl Error:".curl_error($ch); 
  71.  
  72.     } 
  73.  
  74.     //  釋放cURL句柄 
  75.  
  76.     curl_close($ch); 
  77.  
  78.     echo "aaa45"
  79.  
  80.  
  81. function action_curl_pos(){ 
  82.  
  83.     var_dump($_FILES); 
  84. //phpfensi.com 
  85.     $aa= move_uploaded_file($_FILES["upload"]["tmp_name"], "/wamp/tools/1.rar"); 
  86.  
  87.     if($aa){ 
  88.  
  89.       echo "11"
  90.  
  91.     } 
  92.  

Tags: curl模擬 post上傳

分享到:

广西快3最大遗漏值统计表