Reputation: 278
I'm trying to get a directory listing from a FTP server which only accepts FTP connections over explicit TLS.
<?php
$ftp_server = "...";
$ftp_user_name = "...";
$ftp_user_pass = "...";
// set up basic ssl connection
$conn_id = ftp_ssl_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
echo $login_result . "<br/>";
// change dir to "data"
$chdir_result = ftp_chdir($conn_id, "data");
echo $chdir_result . "<br/>";
echo ftp_pwd($conn_id) . "<br/>";
// get contents of the current directory
$contents = ftp_rawlist($conn_id, ".");
// output $contents
var_dump($contents);
// close the ssl connection
ftp_close($conn_id);
?>
The script hangs for about a minute and gives the following output:
1
1
/data
bool(false)
I also tried using ftp_nlist and print_r with no avail. (print_r just prints blank).
Upvotes: 1
Views: 1555
Reputation: 4170
If you have a firewall or NAT enabled on your server then you have to use passive mode for your ftp connection
Add this before ftp_rawlist()
ftp_pasv( $conn_id, true );
Upvotes: 3