ファイルが文字列のみとして表される場合、他のフォーム データとともにファイルを送信するタスクはより複雑になります。このチュートリアルでは、PHP で cURL を使用してリクエストを構築し、一時ファイルの作成をバイパスする方法を説明します。
ブラウザからのサンプル POST リクエストを分析すると、次のようなマルチパート/フォーム データ構造が明らかになります。独特の境界線。この形式を手動で複製するには、次の作業が必要です。
--boundary Content-Disposition: form-data; name="otherfield" Content-Type: text/plain other field content --boundary Content-Disposition: form-data; name="filename"; filename="test.jpg" Content-Type: image/jpeg raw JPEG data --boundary--
<code class="php">$options = array( // Send post data over a POST request CURLOPT_POST => true, CURLOPT_HTTPHEADER => array( // Content-type to multipart/form-data with boundary 'Content-Type: multipart/form-data; boundary='.$delimiter, // Content-Length to the length of our multipart form data 'Content-Length: ' . strlen($data) ) );</code>
<code class="php">curl_setopt($handle, CURLOPT_POSTFIELDS, $data); curl_exec($handle);</code>
本文を作成し、適切なヘッダーを設定すると、ブラウザからの POST リクエストがシミュレートされ、一時ファイルの作成が回避されます。
以上がPHP で一時ファイルを使用せずに cURL を使用してファイル文字列を POST する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。