PHP Curl SFTP下载工作在本地,而不是在服务器上



我在这里和那里挑选了一些代码,以确保我可以直接在浏览器中从sFtp服务器下载文件。

当我在本地运行脚本时,它工作得很好,它下载文件很好。当我把它上传到我的ubuntu 20.04服务器上,并在浏览器中进入url。通知他想下载。只有文件是0字节

脚本:

header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename="demo.pdf""); 
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "sftp://".$host."/demo.pdf");
curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_exec($curl);
curl_close($curl);

服务器上安装了Curl PHP扩展

(编辑)修复(i think):

当我添加以下行时。它将工作:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

请检查您的php.ini设置并确认那里没有禁用curl_exec函数。您也可以查看web服务器日志以了解更多信息。

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

最新更新