現在、ファイルのアップロードを許可するサイトを持っています。ユーザーがフォームを送信すると、API に curl リクエストを送信する php スクリプトを実行します。
現在、php リクエストは次のようになっています。
$params = array(
'media' => "@" . $_FILES['media']['tmp_name']
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
API は$_FILES
フィールドをチェックし、メディアを取得して実行しmove_uploaded_file
ます。
そのため、ファイルはユーザーが送信したフォームから curl から API サーバーに直接送信され、ファイルが実際にアップロードされることはありません (フォームの送信と curl リクエストの間の tmp フォルダーに配置される以外に) API サーバーに到達するまでは。
これはすべて、ファイルを api サーバーにアップロードするために正常に機能しますが、問題は、curl 要求が送信するファイルであるため、サーバーがファイルの拡張子を png などではなく .tmp と見なすことです。
APIサーバーが実際に送信されているファイルを認識できるように、最初にカール前にアップロードせずにファイルを送信するにはどうすればよいですか?