-1

我正在尝试使用 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
4

3 回答 3

3
$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);

这行得通。

于 2013-06-11T18:59:25.067 回答
0

检查文件所有权和权限。你正在做一个fopen($filename, 'w'). 你只想说fopen($filename, 'r')吗?

于 2013-06-11T18:39:24.160 回答
0

我认为问题在于您正在打开本地文件句柄进行阅读。

$fh = fopen($filename, 'r') or die($php_errormsg);

我拿了你的代码并将'r'更改为'w',它对我有用。

于 2016-10-04T17:59:53.273 回答