PHP のフォーム POST から cURL 経由でファイルを送信する
PHP のフォーム POST からファイルのアップロードを処理する場合、次の方法を理解することが重要です。 cURL を利用してファイルを送信します。通常、フォームのマークアップには、enctype="multipart/form-data" のファイル入力フィールドが含まれています。
POST リクエストで cURL を使用してファイルを送信するには、次の方法を使用します。
$post = array( 'image' => '@' . $_FILES['image']['tmp_name'] );
cURL の初期化:
$ch = curl_init();
cURL オプションの設定:
curl_setopt($ch, CURLOPT_URL, 'http://example.com/curl_receiver.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
リクエストを実行します:
curl_exec($ch);
cURL を閉じる:
curl_close($ch);
受信側では、curl_receiver.php のようなスクリプトでファイルを受信できます。
if (isset($_FILES['image'])) { move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'.$_FILES['image']['name']); } ?>
例:
フォーム:
<form action="script.php" method="post" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit" name="upload" value="Upload" /> </form>
スクリプト (script.php):
if (isset($_POST['upload'])) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://example.com/curl_receiver.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'image' => '@' . $_FILES['image']['tmp_name'] )); curl_exec($ch); curl_close($ch); }
レシーバー スクリプト (curl_receiver.php):
if (isset($_FILES['image'])) { move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'.$_FILES['image']['name']); }
以上がPHP のフォーム POST から cURL 経由でファイルを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。