如何使用cURL在PHP 5.05中发送文件

时间:2019-04-09 18:46:18

标签: php curl

我正在尝试使用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_pa​​ge)返回bool(false) 预期结果:成功的消息

1 个答案:

答案 0 :(得分:1)

您正在使用的PHP版本已于15年前的2005年停产。您的问题可能与此有关。例如,您的示例URL使用HTTPS-老式PHP解释器中嵌入的curl的版本可能与其所连接的Web服务器的HTTPS配置不兼容。

(即使“ 5.0.5”是一个拼写错误,而您实际上的意思是PHP 5.5,该版本在2016年就已经寿终正寝了。)

将系统更新为受支持的PHP版本。