我在这里和那里挑选了一些代码,以确保我可以直接在浏览器中从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);