Web 開発では、フォーム データとともにファイルを送信することが一般的な要件です。 cURL はファイル システムからファイルを POST する簡単な方法を提供しますが、この記事では、一時ファイルの作成の必要性を回避して、ファイルを文字列として直接 POST する手法を検討します。
重要なのは、マルチパート/フォームデータのリクエスト本文を手動で構築することにあります。まず、フォームフィールドをファイルアップロードから分離します。ファイル以外のフィールドごとに、フィールド名と値を含むフォーム データ セクションを作成します。
次に、アップロードするファイルごとに、ファイル名、MIME タイプ、およびファイル名を含むフォーム データ セクションを作成します。実際のファイルの内容。
ブラウザのような POST をシミュレートするには、適切なヘッダーを設定します。
<code class="php">'Content-Type: multipart/form-data; boundary=' . $delimiter 'Content-Length: ' . strlen($data)</code>
ここで、$delimiter はそれぞれを区切る固有の文字列です。
<code class="php">$handle = curl_init($url); curl_setopt($handle, CURLOPT_POST, true); curl_setopt($handle, CURLOPT_HTTPHEADER , array( 'Content-Type: multipart/form-data; boundary=' . $delimiter, 'Content-Length: ' . strlen($data))); curl_setopt($handle, CURLOPT_POSTFIELDS, $data); curl_exec($handle);</code>
multipart/form-data 本体を構築し、必要なヘッダーを設定することで、cURL は文字列として表されるファイルをシームレスに POST できます。物理ファイルを操作する場合と比較して、より柔軟で効率的なアプローチを提供します。
以上がPHP で cURL を使用してファイル文字列を POST する方法: ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。