首頁  >  文章  >  後端開發  >  如何在 PHP 中透過 cURL 上傳檔案?

如何在 PHP 中透過 cURL 上傳檔案?

Susan Sarandon
Susan Sarandon原創
2024-11-07 13:42:03904瀏覽

How to Upload Files via cURL in PHP?

在PHP 中透過cURL 上傳檔案

問題

問題

從表單上上傳處理的表單POST文件在PHP 中並使用cURL 發送它們可能具有挑戰性。 HTML 表單使用 multipart/form-data 編碼,但 cURL 請求中上傳檔案的確切格式仍不清楚。

解決方案

使用cURL 上傳檔案在PHP 中,請依照下列步驟操作:

<?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 要求

<?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);
?>
接收檔案

用於接收腳本(curl_receiver.php),您可以使用以下程式碼:透過使用這些步驟,您可以使用cURL 從PHP 中的表單POST 成功上傳檔案。

以上是如何在 PHP 中透過 cURL 上傳檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn