首页 >后端开发 >php教程 >如何在 PHP 中使用 cURL 从 HTML 表单 POST 上传文件?

如何在 PHP 中使用 cURL 从 HTML 表单 POST 上传文件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-10 14:09:02404浏览

How to Upload Files Using cURL from a HTML Form POST in PHP?

在 PHP 中通过 cURL 从表单 POST 上传文件

概述

此问题涉及通过 cURL 从表单 POST 请求处理文件上传。表单的标记很简单:

<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="image">

在服务器上处理文件上传

要在服务器端处理文件上传,您需要使用 PHP 的 $_FILES 全局变量。该变量将包含有关上传文件的信息数组,包括临时文件名和原始文件名。

以下代码片段展示了如何使用 $_FILES 获取有关上传图像的信息:

if (isset($_POST['upload'])) {
  $tmpFileName = $_FILES['image']['tmp_name'];
  $originalFileName = $_FILES['image']['name'];
}

通过 cURL 发送文件

要通过 cURL 发送文件,您需要指定 CURLOPT_INFILE 选项并设置其为临时文件名。您还需要将 CURLOPT_UPLOAD 选项设置为 1。例如:

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "http://example.com/upload.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_INFILE, $tmpFileName);
curl_setopt($curl, CURLOPT_UPLOAD, 1);

$curlResult = curl_exec($curl);

curl_close($curl);

在服务器上接收文件

在接收服务器上,您可以使用以下代码接收上传的文件:

<?php
// Get the file from the request
$file = file_get_contents('php://input');

// Save the file to a temporary location
$tmpFileName = tempnam(sys_get_temp_dir(), 'phpexec');
file_put_contents($tmpFileName, $file);

// You can now process the file as needed

// Delete the temporary file
unlink($tmpFileName);
?>

以上是如何在 PHP 中使用 cURL 从 HTML 表单 POST 上传文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

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