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

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

Mary-Kate Olsen
发布: 2024-11-10 14:09:02
原创
403 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板