php curl 传参文件
2024-01-10 10:38:20
有 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)直接用_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;
}
文章来源:https://blog.csdn.net/nihao123456789222/article/details/135495165
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!