1、body参数 Content-Type为 multipart/form-data
public function sendPostFileRequest1($url,$file_path)
{
// 初始化cURL会话
$ch = curl_init();
// 设置目标URL
curl_setopt($ch, CURLOPT_URL, $url);
// 启用POST方法,并设置请求体的类型为multipart/form-data
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'cover' => new \CURLFile($file_path),
'caption' => '宝,有空常来吃热狗'
));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 为cURL会话设置适当的请求头
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
// 设置cURL选项,以便将响应结果直接作为字符串返回,而不是输出到浏览器
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 执行cURL请求并获取结果
$response = curl_exec($ch);
// 检查是否有错误发生
if (curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
}
// 关闭cURL会话
curl_close($ch);// 输出响应结果echo $response;
return $response;
}
2、 二进制body方式
public function sendPostBinaryDataRequest($url, $filePath)
{
// 初始化cURL会话
$ch = curl_init();
// 设置目标URL,替换{endpoint}为实际的服务器地址
// 设置请求头
$headers = array( 'Content-Type: video/mp4');
// 准备二进制数据,这里假设$binaryData是文件的二进制内容
$binaryData = file_get_contents($filePath);
// 替换为实际的文件二进制内容
// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $binaryData);
// 设置cURL选项,以便将响应结果直接作为字符串返回,而不是输出到浏览器
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 执行cURL请求
$response = curl_exec($ch);
// 检查是否有错误发生
if(curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
}
// 关闭cURL会话
curl_close($ch);
// 输出响应结果
return $response;
}