php curl post 上传文件流
时间: 2024-10-16 20:00:34 浏览: 54
在PHP中,使用cURL库进行POST请求并上传文件通常涉及到两个步骤:设置cURL会话,然后添加文件数据到POST体。以下是基本的示例:
```php
// 初始化cURL会话
$ch = curl_init();
// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, 'http://example.com/upload.php'); // 目标URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取响应而不是直接输出
curl_setopt($ch, CURLOPT_POST, true); // 请求方式为POST
// 如果需要身份验证
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); // 针对文件上传指定内容类型
if ($username && $password) {
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
}
// 添加文件数据
$file_path = '/path/to/your/file'; // 文件路径
$file_name = basename($file_path);
curl_setopt($ch, CURLOPT_POSTFIELDS, "file=" . '@/'.$file_path.';filename='.$file_name);
// 执行cURL请求
$response = curl_exec($ch);
// 检查错误并关闭会话
if(curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
echo 'Upload successful! Response: ' . $response;
}
curl_close($ch);
```
在这个例子中,`@file_path;filename=file_name` 的格式用于将本地文件转换为cURL能处理的数据。
阅读全文