当文件仅表示为字符串时,将文件与其他表单数据一起发送的任务变得更加复杂。本教程演示如何在 PHP 中使用 cURL 构建请求并绕过临时文件创建。
分析来自浏览器的示例 POST 请求,揭示了一个 multipart/form-data 结构,其中包含独特的边界。手动复制此格式涉及:
--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>
通过制作body和设置适当的标头,我们模拟来自浏览器的 POST 请求并避免创建临时文件。
以上是如何在没有临时文件的情况下在 PHP 中使用 cURL 发布文件字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!