zoukankan      html  css  js  c++  java
  • CURL模拟post请求上传文件

    贴一段醍醐灌顶的话:

    逻辑很简单,设置POST变量$post_data,其中upload指向需要发送的文件。这里要注意,我们之前使用POST都是发送一个字符串,然后在服务器端使用file_get_contents(“php//input”)来获取该字符串,和这里的用法不一样,其实POST也可以像GET一样,发送键值对。在服务端有一个超级全局变量$_POST可以像$_GET一样,获取相应的POST数据的值。需要注意的是,上传文件的变量不是存在着$_POST中,而是在$_FILES中;

    curl_file

    <?php
    function curlRequest($url,$data=''){
      $ch=curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不验证证书
      if(!empty($data)){
        curl_setopt($ch, CURLOPT_POST, 1);
        // curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
      }
      $output=curl_exec($ch);
      $errno=curl_errno($ch);
      curl_close($ch);
      return json_decode($output,true);
    }
    
    //测试
    $url="http://www.luoqiusa.top/wx/upload.php";
    // $data=array('name'=>'yolo');
    $data=array("myfile"=>"@/var/www/html/wx/upload/0.jpg");//'myfile'是自己定义的文件名,/var/www/html/wx/upload/0.jpg是服务器本地文件地址
    $res=curlRequest($url,$data);
    print_r($res);
    

    upload.php 

    <?php
     if(isset($_FILES['myfile']['tmp_name'])){
        $jsonObj='{"name":"yolo_bean","age":23,"gender":"female"}';
        print_r($jsonObj);
     }
    

      

  • 相关阅读:
    友链
    CF496E Distributing Parts(贪心)题解
    CF786C Till I Collapse(根号分治)题解
    CF578B "Or" Game(贪心)题解
    CF433C Ryouko's Memory Note(贪心)题解
    Luogu4177 [CEOI2008]order(网络流)题解
    骗分专辑
    CF718A Efim and Strange Grade(贪心)题解
    prufer序列--学习笔记
    bzoj3450 Tyvj1952 Easy(期望DP)题解
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7802597.html
Copyright © 2011-2022 走看看