范例
在线手册:中文  英文

Basic usage

Example #1 FTP example

<?php
// set up basic connection
$conn_id ftp_connect($ftp_server); 

// login with username and password
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass); 

// check connection
if ((!$conn_id) || (!$login_result)) { 
    echo 
"FTP connection has failed!";
    echo 
"Attempted to connect to $ftp_server for user $ftp_user_name"
    exit; 
} else {
    echo 
"Connected to $ftp_server, for user $ftp_user_name";
}

// upload the file
$upload ftp_put($conn_id$destination_file$source_fileFTP_BINARY); 

// check upload status
if (!$upload) { 
    echo 
"FTP upload has failed!";
} else {
    echo 
"Uploaded $source_file to $ftp_server as $destination_file";
}

// close the FTP stream 
ftp_close($conn_id); 
?>


范例
在线手册:中文  英文

用户评论:

Anonymous (2012-06-28 08:06:48)

If you are having timeouts uploading a file, such as the following warning:

Warning: ftp_put() [function.ftp-put]: Could not open data connection to port XXXXX: Connection timed out in /xxxx/xxxx/xxx.php on line XX

You might want to consider using ftp_pasv().

The error is likely due to firewall issue on the "FTP client side" when connnecting using FTP active mode.

Switching to FTP passive mode often solves the problem.

Example:

<?php

// set up basic connection
$conn_id ftp_connect($ftp_server); 

// login with username and password
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass); 

// turn ftp passive mode on
ftp_pasv($conn_idtrue); 

?>

kane dot prajakta at gmail dot com (2010-01-14 02:53:13)

I used following code successfully to connect to "lftp" server and see the complete dir listing.
also ftp_pasv($conn_id, true); trick works fine for lftp server :)

<?php
// set up basic connection
$ftp_server "example.com";
$conn_id ftp_ssl_connect($ftp_server);

// login with username and password
$ftp_user_name "myuser";
$ftp_user_pass "mypass";
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);
ftp_pasv($conn_idtrue);
// check connection
if ((!$conn_id) || (!$login_result)) {
        echo 
"FTP connection has failed!";
        echo 
"Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
    } else {
        echo 
"Connected to $ftp_server, for user $ftp_user_name";
    }

$buff ftp_rawlist($conn_id'.');
 
var_dump($buff);
ftp_close($conn_id);  
?>

Thanks ,
Prajakta

clemensroth2004 at yahoo dot de (2009-07-08 15:06:48)

My FTP-Server always responded "bool(false)" instead of presenting me a directory-listing. I had to add
ftp_pasv($conn_id, true); right after the $login_result = ftp_login(...); line.
After that it just worked fine.

易百教程