Home  >  Article  >  php教程  >  用php写 ftp文件上传函数教程

用php写 ftp文件上传函数教程

WBOY
WBOYOriginal
2016-06-13 11:23:481097browse

本篇教程是一款关于用php写 ftp文件上传函数教程哦,php功能很强大,可以用他自身带的函数来实例ftp的功能,实现文件上传功能哦

本篇教程是一款关于用php教程写 ftp文件上传函数教程哦,php功能很强大,可以用他自身带的函数来实例ftp的功能,实现文件上传功能哦。下面是一个完整的实例


function phpftp_top() {
echo "n";
echo "n";
echo "

n";
echo "PHP FTP Client v1.4n";
echo "n";
echo "n";
echo "nn";
}

function phpftp_bottom() {
echo "nn";
echo "

n";
echo "n";
echo "n";
}

function phpftp_login() {
phpftp_top();
echo "n";
echo "

n";
echo "

n";
echo "Login:     ";
echo "n";
echo "

n";
echo "Password:  ";
echo "n";
echo "

n";
echo "Directory: ";
echo "n";
echo "

n";
echo "n";
echo "n";
echo "

n";
echo "

n";
phpftp_bottom();
}

/* This function does not return TRUE/FALSE - it returns the value of
$ftp, the current FTP stream. */

function phpftp_connect( $phpftp_user, $phpftp_passwd ) {
$phpftp_host="localhost";
$ftp = ftp_connect( $phpftp_host );
if ( $ftp ) {
if ( ftp_login( $ftp, $phpftp_user, $phpftp_passwd ) ) {
return $ftp;
}
}
}

function phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir ) {
phpftp_top();
echo "n";
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( ! $ftp ) {
echo "FTP login failed!n";
echo "Start over?n";
phpftp_bottom();
} else {
if ( ! $phpftp_dir ) {
$phpftp_dir=ftp_pwd( $ftp );
}
if ( ! @ftp_chdir( $ftp, $phpftp_dir ) ) {
echo "Can't enter that directory!

n";
$phpftp_dir=ftp_pwd( $ftp );
}
echo "Current directory: " . $phpftp_dir . "
n";
if ( $phpftp_dir == "/" ) {
$phpftp_dir="";
}
echo "

n";
if ( $contents = ftp_nlist( $ftp, "." ) ) {
$d_i=0;
$f_i=0;
sort($contents);
for ( $i=0; $i $file_size = ftp_size( $ftp, $contents[$i] );
if ( $file_size == -1 ) {
$nlist_dirs[$d_i]=$contents[$i];
$d_i++;
} else {
$nlist_files[$f_i]=$contents[$i];
$nlist_filesize[$f_i]=$file_size;
$f_i++;
}
}
echo "nn";
} else {
echo "

Directory empty or not readable

n";
}
echo "

n";
echo "Directories
n";
echo "
n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "
n";
echo "n";
echo "
n";
echo "
nn";
echo "Files
n";
echo "
n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "
n";
echo "n";
echo "
n";
echo "
nn";
echo "

n";
echo "

n";
$cdup=dirname( $phpftp_dir );
if ( $cdup == "" ) {
$cdup="/";
}
echo "n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "
n";
echo "

n";
echo "

n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "
n";
echo "

nn";
echo "

n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "n";
echo "n";
ftp_quit( $ftp );
phpftp_bottom();
}
}

function phpftp_cd( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_directory ) {
echo "n";
$new_directory=$phpftp_dir . "/" . $select_directory;
phpftp_list( $phpftp_user, $phpftp_passwd, $new_directory );
}

function phpftp_mkdir( $phpftp_user, $phpftp_passwd, $phpftp_dir, $new_dir ) {
echo "n";
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( $phpftp_dir == "" ) {
$phpftp_dir="/";
}
if ( ! $ftp ) {
@ftp_quit( $ftp );
phpftp_top();
echo "FTP login failed!

n";
echo "Start over?n";
phpftp_bottom();
} else {
$dir_path = $phpftp_dir . "/" . $new_dir;
@ftp_mkdir( $ftp, $dir_path );
@ftp_quit( $ftp );
phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir );
}
};


function phpftp_get( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_file ) {
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( $phpftp_dir == "" ) {
$phpftp_dir="/";
}
if ( ( ! $ftp ) || ( ! @ftp_chdir( $ftp, $phpftp_dir ) ) ) {
@ftp_quit( $ftp );
phpftp_top();
echo "FTP login failed!

n";
echo "Start over?n";
phpftp_bottom();
} else {
srand((double)microtime()*1000000);
$randval = rand();
$tmpfile="/var/tmp/xfers/" . $select_file . "." . $randval;
if ( ! ftp_get( $ftp, $tmpfile, $select_file, FTP_BINARY ) ) {
ftp_quit( $ftp );
phpftp_top();
echo "FTP get failed!

nStart over?n";
phpftp_bottom();
} else {
ftp_quit( $ftp );
header( "Content-Type: application/octet-stream" );
header( "Content-Disposition: attachment; filename=" . $select_file );
readfile( $tmpfile );
}
@unlink( $tmpfile );
}
}

function phpftp_put( $phpftp_user, $phpftp_passwd, $phpftp_dir, $userfile, $userfile_name ) {
srand((double)microtime()*1000000);
$randval = rand();
$tmpfile="/var/tmp/xfers/" . $userfile_name . "." . $randval;
if ( ! @copy( $userfile, $tmpfile ) ) {
phpftp_top();
echo "Upload failed! Probably no space on server for temp file.

nStart over?n";
phpftp_bottom();
} else {
if ( ! $ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd ) ) {
unlink( $tmpfile );
phpftp_top();
echo "FTP login failed!

nStart over?n";
phpftp_bottom();
} else {
ftp_put( $ftp, $userfile_name, $tmpfile, FTP_BINARY );
ftp_quit( $ftp );
unlink( $tmpfile );
phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir );
}
}
}

switch( $function ) {
case "dir";
phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir );
break;
case "cd";
phpftp_cd( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_directory );
break;
case "get";
phpftp_get( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_file );
break;
case "put";
phpftp_put( $phpftp_user, $phpftp_passwd, $phpftp_dir, $userfile, $userfile_name );
break;
case "mkdir";
phpftp_mkdir( $phpftp_user, $phpftp_passwd, $phpftp_dir, $new_dir );
break;
case "";
phpftp_login();
break;
}

?>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn