我正在尝试使用PHP中的cURL库来从远程服务器获取SFTP文件,如下所示。我收到no such file exists
错误。我有什么想法吗?
<html>
<body>
<?php
$user="username";
$pass="password";
$filename="/opt/vmstat/vmstat_file";
$c = curl_init("sftp://$user:$pass@server1/$filename");
$fh = fopen($filename, 'r') or die($php_errormsg);
curl_setopt($c, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($c, CURLOPT_FILE, $fh);
curl_exec($c);
curl_close($c);
?>
</body>
</html>
错误:
Warning: fopen(="/opt/vmstat/vmstat_file): failed to open stream: No such file or directory in C:\inetpub\wwwroot\sftp.php on line 9
答案 0 :(得分:2)
$c = curl_init("sftp://$user:$pass@server1/opt/vmstat/vmstat_file");
curl_setopt($c, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
$data = curl_exec($c);
curl_close($c);
这很有效。
答案 1 :(得分:0)
检查文件所有权和权限。
你正在做fopen($filename, 'w')
。你只想说fopen($filename, 'r')
吗?
答案 2 :(得分:0)
我认为问题在于你打开本地文件句柄进行阅读。
$fh = fopen($filename, 'r') or die($php_errormsg);
我拿了你的代码并更改了&#39; r&#39;到了&#39;,它对我有用。