php curl模仿form表单提交图片或文件

有 curl_file_create 和 CURLFile 两种方法,这两种方法是我亲自测试过的好用(我用的php版本是7,而5.5之前是可以用@这个方法,我没有测试过)

第一种:curl_file_create方法,具体curl_file_create参数请自行百度

1 组装传递参数:
    $paramsData = [
                'id' => $id,
                'file' => curl_file_create("/tmp/tempVideoImage/1642041087.jpg",'image/jpeg',11),
    ];

    2 调用curl方法
    postDataFileByCurl($api,$paramsData)

这里多说一句,这里的curl_file_create第一个参数文件的实际路径,可以保存前端传来的文件,用完再删除即可。

第二种方法:CURLFile 可以介绍前端的file参数,直接上传到第三方地址

 1 组装传递参数:
    $paramsData = [
            'id' => $id,
            'file' => new \CURLFile($_FILES["imagePath"]['tmp_name'],$_FILES["imagePath"]['type'],$_FILES["imagePath"]['name']), // 使用CURLFile类 【参数是前端传输过来的】;
    ];

    2 调用curl方法
    postDataFileByCurl($api,$paramsData)

第三方地址介绍参数(也是php)直接用$_POST和$_FILES就可以

 var_dump($_POST);
 var_dump($_FILES);

curl公共方法

function postDataFileByCurl($post_url, $parameters)
        {
            $timeout =  10;
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $post_url);
            curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
            ob_start();
            $exe_result = curl_exec($ch);
            ob_end_clean();
            curl_close($ch);
            return $exe_result;
    }

完整demo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaopzi123123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值