• 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);
     }
    

      

  • 相关阅读:
    20202418 202120222 《Python程序设计》实验3报告
    人生苦短,我用python( 目录)
    列表
    python 算法补充
    Python数据类型
    数字类型及字符串
    将 CoAP 协议设备接入 EMQX Cloud
    发布在即,全新 EMQX v5.0 抢先看!
    EMQX Cloud 更新:外部认证授权
    20192417 实验五 信息搜集技术实践
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7802597.html
Copyright © 2020-2023  润新知