函数名称:ftp_nb_put()
函数描述:将文件上传到远程FTP服务器的指定路径。
适用版本:该函数适用于PHP 4及以上版本。
语法:ftp_nb_put(resource $ftp_stream, string $remote_file, string $local_file, int $mode[, int $startpos])
参数:
- $ftp_stream:FTP连接资源,通过ftp_connect()或ftp_ssl_connect()函数获取。
- $remote_file:远程服务器上保存上传文件的路径。
- $local_file:本地文件的路径。
- $mode:上传文件的模式,可以是FTP_BINARY或FTP_ASCII。
- $startpos(可选):上传文件的起始位置。
返回值:如果成功启动上传,则返回一个正的FTP流。
示例:
// 连接到FTP服务器
$ftp_server = 'ftp.example.com';
$ftp_user = 'username';
$ftp_pass = 'password';
$ftp_conn = ftp_connect($ftp_server);
$login = ftp_login($ftp_conn, $ftp_user, $ftp_pass);
// 检查连接和登录是否成功
if (!$ftp_conn || !$login) {
die('FTP连接或登录失败');
}
// 设置被动模式
ftp_pasv($ftp_conn, true);
// 上传文件
$remote_file = '/path/to/remote/file.txt';
$local_file = '/path/to/local/file.txt';
$mode = FTP_BINARY;
$startpos = 0;
$upload = ftp_nb_put($ftp_conn, $remote_file, $local_file, $mode, $startpos);
while ($upload == FTP_MOREDATA) {
// 继续上传
$upload = ftp_nb_continue($ftp_conn);
}
if ($upload == FTP_FINISHED) {
echo '文件上传成功';
} else {
echo '文件上传失败';
}
// 关闭FTP连接
ftp_close($ftp_conn);
注意事项:
- 在使用ftp_nb_put()函数之前,需要先建立一个FTP连接,并通过ftp_login()函数进行登录验证。
- 如果需要使用被动模式进行文件传输,可以使用ftp_pasv()函数设置。
- 上传过程使用了ftp_nb_continue()函数来继续上传文件,直到返回FTP_FINISHED表示上传完成。
- 在上传过程中,你可以根据需要添加错误处理和进度跟踪的代码。