当前位置:首页 > 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上传

分享到: