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

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

WBOY
WBOYOriginal
2016-06-13 11:23:481099Durchsuche

本篇教程是一款关于用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;
}

?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn