提问者:小点点

无法使用fopen访问FTP文件,或者文件“”存在或文件“”获取“”内容


我正在尝试文件读取的ftp连接。

我想做的就是

  • 阅读特定的ftp目录
  • 列出其所有文本文件
  • 一个接一个地读

我成功地列出了给定目录中的文件。

例如:下面的代码返回$emailfile数组,其中test. txt为一个值。

但是,当我尝试使用fopen/file\u get\u contents打开/读取相同的文件内容时,会出现错误:“无法打开流”

我能够从另一个ftp:.38访问文件,这是公共ftp。我想实际使用的ftp是.94,对此我有完全的特权,因为我可以通过相同的链接从浏览器访问文件。我也可以写/粘贴文件从窗口资源管理器。

但是我无法从php代码中读取相同的文件。

下面是我的ftp连接和测试代码。

    $ftp_server = "10.96.5.94";
$ftp_serverpath = "ftp://".$ftp_server;
$ftp_user_name = "myusername";
$ftp_user_pass = "mypassword";
$email_dir = "ebill";
try {
$con = ftp_connect($ftp_server);
if (false === $con) {
    throw new Exception('Unable to connect');
}

$loggedIn = ftp_login($con,  $ftp_user_name,  $ftp_user_pass);
if (true === $loggedIn) {
    echo 'Success!';
} else {
    throw new Exception('Unable to log in');
}

ftp_pasv($con, true);
$emailfiles = ftp_nlist($con, $email_dir);
print_r($emailfiles);


//$filename = "ftp://10.16.0.38/ebill/TEST.txt";
$filename = "ftp://10.96.5.94/ebill/TEST.txt";
$pr = file_exists($filename);
// OR
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));

任何帮助都非常感谢,谢谢。


共1个答案

匿名用户

好的,这解决了我的错误。

$filename = "ftp://username:pa‌​ssword@hostname/path/to/file";

谢谢。