簡體   English   中英

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

[英]How to send file in PHP 5.05 using 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) 預期結果:成功消息

您使用的 PHP 版本已於 2005 年(即近 15 年前)停產。 您的問題可能與此有關。 例如,您的示例 URL 使用 HTTPS —— 嵌入在您的老式 PHP 解釋器中的 curl 版本可能與它所連接的 Web 服務器的 HTTPS 配置不兼容。

(即使“5.0.5”是一個錯字,而您實際上是指 PHP 5.5,該版本也已在 2016 年停產。)

將您的系統更新到受支持的 PHP 版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM