PHP CURL 模拟form表单上传遇到的小坑

Posted langgezuishuai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP CURL 模拟form表单上传遇到的小坑相关的知识,希望对你有一定的参考价值。

1:引用的时候

$parans [‘img‘]=new \CURLFile($param);

传入的文件 在php版本5.5以上记得new CURLFile 不然会上传不成功

 /**
     * http post请求--CURL模拟表单上传文件
     * @param $url string 请求地址
     * @param $params array 请求参数
     * @param $header array 请求头
     * @return mixed
     */
    protected function _httpPostImg($url, $params = array() , $header = array())
    
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_TIMEOUT, 500);
        curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        $header = array(‘Content-Type: multipart/form-data‘); //请求头记得变化-不同的上传方式
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

        //当需要通过curl_getinfo来获取发出请求的header信息时,该选项需要设置为true
        curl_setopt($ch, CURLINFO_HEADER_OUT, true);

        $response = curl_exec($ch);
        //打印请求的header信息
        //$request_header = curl_getinfo($ch, CURLINFO_HEADER_OUT);
        //print_r($ch);exit;
        curl_close($ch);
        return $response;
    

 

以上是关于PHP CURL 模拟form表单上传遇到的小坑的主要内容,如果未能解决你的问题,请参考以下文章

使用 HTML 表单、cURL 和 PHP 将文件上传到 Imageshack API

Linux curl 模拟form表单提交信息和文件

php5.6 curl 模拟表单上传文件

PHP 如何带上cookies模拟GET表单提交

请教用Curl 在php 里面模拟表单提交 文本+文件的写法

PHP 中的CURL 模拟表单的post提交