This little module makes ftp with drupal easy. It doesnt do anything on its own but provides an api to do ftp.
http://drupal.org/project/drupal_ftp
The whole thing did not work without this line.
ftp_pasv($conn_id, true);
Apparently with some ftp accounts you need to transfer in passive mode. As usual not documented by the client.