📜  user1263019 如何使用 php curl 上传文件 - PHP (1)

📅  最后修改于: 2023-12-03 15:35:32.455000             🧑  作者: Mango

使用 PHP cURL 上传文件

在 PHP 中,cURL 是一个强大的库,它可以让你以各种方式与 URL 进行通信,其中就包括上传文件。本文将为你介绍如何使用 PHP cURL 上传文件。

开始

在使用 cURL 上传文件之前,你需要按照以下步骤设置代码:

1. 创建一个表单

在 HTML 中创建一个表单,其中包含一个文件输入字段。例如:

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

在这个表单中,我们使用 enctype="multipart/form-data" 属性指示将上传文件作为二进制数据进行处理,并将其包含在 POST 请求中。

2. 创建 PHP 脚本

创建一个名为 upload.php 的 PHP 脚本,该脚本将接收上传的文件并将其保存在服务器上。在 upload.php 中,我们将使用如下命令获取上传的文件:

$file = $_FILES['file']['tmp_name'];

该命令将从 PHP 全局变量 $_FILES 中获取名为 file 的文件,并将其保存在 $file 变量中。

3. 使用 cURL 上传文件

现在,我们已准备好上传文件了。使用以下命令在 upload.php 中上传文件:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com/upload.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
  'file' => new CURLFile($file)
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

该代码使用 cURL 创建一个 POST 请求,并附加上传文件。然后,它会将响应保存在 $response 变量中,并关闭 cURL 会话。

完整示例
<!-- index.html -->
<form enctype="multipart/form-data" action="upload.php" method="POST">
  <input type="file" name="file">
  <input type="submit" value="Upload">
</form>
// upload.php
$file = $_FILES['file']['tmp_name'];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com/upload.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
  'file' => new CURLFile($file)
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

// do something with $response

以上就是使用 PHP cURL 上传文件的完整示例。