php curl 传参文件

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

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

php 复制代码
//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参数,直接上传到第三方地址

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

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

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

php 复制代码
 var_dump($_POST);
    var_dump($_FILES);

curl公共方法

php 复制代码
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;
}
相关推荐
企鹅的蚂蚁几秒前
【ESP32-S3开发踩坑】C++野指针引发的LoadProhibited死机与CMake依赖锁死排查
开发语言·c++
kcuwu.2 分钟前
Python进阶:生成器与协程,高效并发编程的核心实践
windows·python·php
XiaoQiao6669993 分钟前
python 简单题目练手【详解版】【1】
开发语言·python
Kiling_07043 分钟前
Java多态、final与抽象类:面向对象编程进阶指南
java·开发语言
智算菩萨9 分钟前
【Python图像处理】2 数字图像基础与Python图像表示
开发语言·图像处理·python
Jasmine_llq1 小时前
《B3840 [GESP202306 二级] 找素数》
开发语言·c++·试除法·顺序输入输出算法·素数判定算法·枚举遍历算法·布尔标记算法
梁山好汉(Ls_man)1 小时前
鸿蒙_ArkTS解决Duplicate function implementation错误
开发语言·华为·typescript·harmonyos·鸿蒙
xiaoshuaishuai81 小时前
Git二分法定位Bug
开发语言·python
so2F32hj21 小时前
一款Go语言Gin框架DDD脚手架,适合快速搭建项目
开发语言·golang·gin
LJianK12 小时前
Java中的类、普通类,抽象类,接口的区别
java·开发语言