ホームページ >バックエンド開発 >PHPチュートリアル >PHP で cURL 経由でファイルをアップロードするには?
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 サイトの他の関連記事を参照してください。