我正在尝试完成以下任务:
我有一台运行PHP-Application的服务器。我必须提取一些文件并使用POST请求将它们发送到另一台服务器(Django)。我试图通过使用cURL来实现这一目标。我已经有几个POST请求正在运行,它们都可以根据需要工作,但是一旦我尝试使用文件来完成此操作,我就会遇到问题。
当我尝试使用Multipart和FormData将文件从Javascript发送到我的Django服务器时,一切正常。
我尝试在PHP中使用以下代码:
public function httpPost($url, $data, $multipart) {
$curl = curl_init($url);
if ($multipart) {
// curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
// curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
// curl_setopt($curl, CURLOPT_INFILE, $file_handle);
} else {
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
}
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
if ($response === false) {
var_dump(curl_error($curl));
}
curl_close($curl);
}
从上面的代码片段中可以看出,我正在尝试将Header设置为Multipart并相应地设置数据。
我已经尝试了以下事项:
$data
数组中设置它。然后该文件也出现在Django服务器上,但在request.POST
vars中而不在request.FILES
vars中。CurlFile
。然后只有文件路径出现在Django Server 总是当我设置multipart时,Django服务器无法解析request.BODY
。
有人可以帮忙吗?