无法使用fopen或file_exists或file_get_contents访问FTP文件

时间:2014-04-26 05:56:35

标签: php ftp fopen file-exists

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

我想做的就是

  • 阅读特定的ftp目录
  • 列出其所有文本文件
  • 并逐一阅读

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

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

但是当我尝试使用fopen/file_get_contents打开/阅读相同的文件内容时,它会给出错误:"无法打开Stream"

我可以从另一个ftp访问文件: .38 ,这是公共ftp。 我想实际使用的ftp是 .94 ,我有完整的权限,因为我能够从浏览器访问具有相同链接的文件。我也可以从Windows资源管理器中编写/粘贴文件。

我无法从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 个答案:

答案 0 :(得分:1)

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

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

感谢。