首页 >后端开发 >php教程 >如何在 PHP 中通过 cURL 上传文件?

如何在 PHP 中通过 cURL 上传文件?

Susan Sarandon
Susan Sarandon原创
2024-11-07 13:42:03998浏览

How to Upload Files via cURL in PHP?

在 PHP 中通过 cURL 上传文件

问题

处理从表单 POST 上传的文件在 PHP 中并使用 cURL 发送它们可能具有挑战性。 HTML 表单使用 multipart/form-data 编码,但 cURL 请求中上传文件的确切格式仍不清楚。

解决方案

使用 cURL 上传文件在 PHP 中,请按照以下步骤操作:

创建 cURL请求

<?php
// Define the file to be uploaded
$fileKey = 'image';
$tmpFile = $_FILES[$fileKey]['tmp_name'];
$fileName = $_FILES[$fileKey]['name'];

// Initialize cURL
$ch = curl_init();

// Set cURL options
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://your-api-endpoint.com', // Replace with your API endpoint
    CURLOPT_USERPWD => 'username:password', // Replace with your API credentials
    CURLOPT_UPLOAD => true,
    CURLOPT_INFILE => fopen($tmpFile, 'r'), // Open the file for reading
    CURLOPT_INFILESIZE => filesize($tmpFile),
]);

**Sending the Request**

// Execute the cURL request
$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error sending file: ' . curl_error($ch);
} else {
    // Handle the response
    echo 'File uploaded successfully.';
}

// Close the cURL connection
curl_close($ch);
?>

接收文件

对于接收脚本(curl_receiver.php),可以使用以下代码:

<?php
// Get the file data
$file = fopen('php://input', 'rb');

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

// Do something with the file
// ...

// Clean up
fclose($file);
unlink($tempFile);
?>

通过使用这些步骤,您可以使用 PHP 成功从表单 POST 上传文件卷曲。

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

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