首页 >后端开发 >php教程 >如何从 PHP 表单 POST 通过 cURL 发送文件?

如何从 PHP 表单 POST 通过 cURL 发送文件?

Linda Hamilton
Linda Hamilton原创
2024-11-09 09:16:02681浏览

How to Send a File via cURL from a PHP Form POST?

通过 cURL 从 PHP 中的表单 POST 发送文件

处理来自表单帖子的文件上传是 API 开发中的一项常见任务。本问题探讨如何使用 PHP 脚本通过 cURL 发送文件。

HTML 表单包含一个文件上传输入字段:

<form action="script.php" method="post" enctype="multipart/form-data">
  <input type="file" name="image">
  <input type="submit" name="upload" value="Upload">
</form>

服务器端 PHP 脚本 (script.php )首先检查是否点击了“上传”按钮:

if (isset($_POST['upload'])) {
  // Handle file upload with cURL
}

要使用 cURL 发送文件,我们需要设置以下内容参数:

  • CURLOPT_URL:远程文件上传目的地的URL
  • CURLOPT_UPLOAD:1(表示请求包含文件上传)
  • CURLOPT_INFILE:文件上传到的临时文件的指针服务器
  • CURLOPT_INFILESIZE:文件的大小(以字节为单位)

这是发送文件的示例 cURL 代码片段:

$localFile = $_FILES['image']['tmp_name']; 
$url = "https://example.com/file_upload.php";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => '@' . $localFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

在接收端,该脚本应该处理文件上传并相应地存储它。这是一个示例:

$file = $_FILES['file'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
move_uploaded_file($fileTmpName, '/path/to/uploads/' . $fileName);

以上是如何从 PHP 表单 POST 通过 cURL 发送文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn