问CHAT:举个例子说明如何使用curl在PHP中同时上传文件和其他数据?
CHAT回复:以下例子为: ```php <?php $url = '
http://www.example.com/path/'; $filename = 'path/to/your/file.png'; $fields = array( 'fieldParam1' => 'someValue', 'fieldParam2' => 'someOtherValue' ); $file_field = "fileParam"; $fields[$file_field] = new CURLFile($filename, 'image/png', $file_field); $resource = curl_init(); $options = [ CURLOPT_URL => $url, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $fields, CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT_HEADER => false, // don't return headers CURLOPT_FOLLOWLOCATION => true, // follow redirects ]; curl_setopt_array($resource, $options); $result = curl_exec($resource); $errmsg = curl_error($resource); $errorNumber = curl_errno($resource); curl_close($resource); if ($errorNumber) { echo "cURL Error ($errorNumber): $errmsg\n"; } else { echo $result; } ```
在此脚本中,我们定义了`$fields`,用于存储要发送的表单字段数据(假设为两个表单字段:`fieldParam1`和`fieldParam2`)。接下来,我们用`new CURLFile()`添加我们的文件。 在我们准备cURL资源后,我们设定了各种选项。典型的是URL和POST选项,以及定义POST字段(这将包含我们的文件和其他表单字段)。 然后,我们执行请求并获取结果。在这之后,我们获取cURL请求的任何错误,并在发生错误的情况下显示它们。
此代码假设文件和其他表单字段都将发送到同一个URL。 如果上传文件/数据失败,服务器应返回错误消息,错误消息将出现在脚本的输出中。
动动小手点个关注 注册 吧~