此问题涉及通过 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 发送文件,您需要指定 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中文网其他相关文章!