PHP复用CURL简单文件上传的2种方法

复制代码

方法一:curlFile 客户端

$filePath = 'head.txt';

// 创建 CURLFile 对象

$file = new CURLFile($filePath);

// 创建 cURL 资源 $ch = curl_init();

// 设置 cURL 选项

curl_setopt($ch, CURLOPT_URL, $your_upload_url);

// 替换为实际的上传接口URL curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

// 设置 POST 数据,包括上传的文件

curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $file]);

// 执行 cURL 请求 $response = curl_exec($ch);

// 检查是否有错误发生

if (curl_errno($ch)) {

  echo 'Curl error: ' . curl_error($ch);

} else {

  // 处理上传成功的响应

  echo 'Upload successful. Response: ' . $response;

}

// 关闭 cURL 资源

curl_close($ch);

接收端:

move_uploaded_file($_FILES['file']['tmp_name'], $dest);

方法二: PUT方法 客户端:

$filePath = 'head.txt';

// 打开文件并获取文件句柄

$fileHandle = fopen($filePath, 'r');

// 创建 cURL 资源 $ch = curl_init();

// 设置 cURL 选项

curl_setopt($ch, CURLOPT_URL, "http://xxx/test/upload");

// 替换为实际的上传接口URL

curl_setopt($ch, CURLOPT_INFILE, $fileHandle);

curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filePath));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_PUT, 1);

// 执行 cURL 请求

$response = curl_exec($ch);

// 检查是否有错误发生

if (curl_errno($ch)) {

  echo 'Curl error: ' . curl_error($ch); }

else {

// 处理上传成功的响应

  echo 'Upload successful. Response: ' . $response;

}

//关闭文件句柄

fclose($fileHandle);

// 关闭 cURL 资源

curl_close($ch);

接收端:

$content = file_get_contents('php://input');

file_put_contents($filename,$content);

复制代码

 

至于大文件的分片上传持续研究中,有结果再更新。

posted @   sblack  阅读(219)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示