ホームページ >バックエンド開発 >PHPチュートリアル >PHP で cURL 経由でファイルをアップロードするには?

PHP で cURL 経由でファイルをアップロードするには?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-07 13:42:03989ブラウズ

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);
?>

これらの手順を使用すると、cURL を使用して PHP のフォーム POST からファイルを正常にアップロードできます。

以上がPHP で cURL 経由でファイルをアップロードするには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。