我正在尝试使用cURL在PHP 5.0.5中发送文件,但无法执行。它返回bool(false)。我可以使用命令行发送它,但需要在我的PHP代码中发送它。
这是命令行代码, curl --data-binary @ employee_extract.txt https://testserver.com/testapp.aspx --proxy http://111.111.11.11:8080
这是成功返回的消息,
<?xml version="1.0"?>
<Status>
<result>ok</result>
<size>192</size>
<id>20190409134142_C12040C53BCC4AC6B4A09E1BC476D262.txt</id>
<message>
<p>file</p>
<p>No xmldoc posted, saving stream.</p>
</message>
</Status>
PHP代码:
$url = 'https://testserver.com/testapp.aspx';
$proxy = '111.111.11.11:8080';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
// send a file
curl_setopt($ch, CURLOPT_POST, true);
$args['file'] = "@employee_extract.txt;filename=file;type=text/plain"
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo $curl_scraped_page;
var_dump($curl_scraped_page);
实际结果:var_dump($ curl_scraped_page)返回bool(false) 预期结果:成功的消息
答案 0 :(得分:1)
您正在使用的PHP版本已于15年前的2005年停产。您的问题可能与此有关。例如,您的示例URL使用HTTPS-老式PHP解释器中嵌入的curl的版本可能与其所连接的Web服务器的HTTPS配置不兼容。
(即使“ 5.0.5”是一个拼写错误,而您实际上的意思是PHP 5.5,该版本在2016年就已经寿终正寝了。)
将系统更新为受支持的PHP版本。