电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> PHP>>一个ftp的所有函数:

一个ftp的所有函数

来源:www.cncfan.com | 2006-1-11 | (有1820人读过)

---摘自互联网

<?
function phpftp_top() {
echo "<!-- function phpftp_top -->\n";
echo "<html>\n";
echo "<head>\n";
echo "<title>PHP FTP Client v1.4</title>\n";
echo "</head>\n";
echo "<body bgcolor=\"#ffffff\">\n";
echo "<font face=\"courier\">\n\n";
}

function phpftp_bottom() {
echo "\n<!-- function phpftp_bottom -->\n";
echo "</font>\n";
echo "</body>\n";
echo "</html>\n";
}

function phpftp_login() {
phpftp_top();
echo "<!-- function phpftp_login -->\n";
echo "<p>\n";
echo "<form action=\"ftp.php3\" method=post>\n";
echo "Login: ";
echo "<input name=\"phpftp_user\" type=\"text\">\n";
echo "<p>\n";
echo "Password: ";
echo "<input name=\"phpftp_passwd\" type=\"password\">\n";
echo "<p>\n";
echo "Directory: ";
echo "<input name=\"phpftp_dir\" type=\"text\">\n";
echo "<p>\n";
echo "<input type=\"hidden\" name=\"function\" value=\"dir\">\n";
echo "<input type=\"submit\" value=\"connect\">\n";
echo "</form>\n";
echo "<p>\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 "<!-- function phpftp_list -->\n";
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( ! $ftp ) {
echo "<strong>FTP login failed!</strong>\n";
echo "<a href=\"ftp.php3\">Start over?</a>\n";
phpftp_bottom();
} else {
if ( ! $phpftp_dir ) {
$phpftp_dir=ftp_pwd( $ftp );
}
if ( ! @ftp_chdir( $ftp, $phpftp_dir ) ) {
echo "<font color=\"#ff0000\"><strong>Can't enter that directory!</strong></font><p><p>\n";
$phpftp_dir=ftp_pwd( $ftp );
}
echo "<strong>Current directory:</strong> " . $phpftp_dir . "
\n";
if ( $phpftp_dir == "/" ) {
$phpftp_dir="";
}
echo "<table border=0 cellspacing=20>\n";
if ( $contents = ftp_nlist( $ftp, "." ) ) {
$d_i=0;
$f_i=0;
sort($contents);
for ( $i=0; $i < count( $contents ); $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 "<tr><td>\n";
echo "<font face=\"courier\"><strong>Directories</strong></font>
\n";
echo "<form action=\"ftp.php3\" method=post>\n";
echo "<input type=\"hidden\" name=\"function\" value=\"cd\">\n";
echo "<input type=\"hidden\" name=\"phpftp_user\" value=\"" . $phpftp_user . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_passwd\" value=\"" . $phpftp_passwd . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_dir\" value=\"" . $phpftp_dir . "\">\n";
echo "<select name=\"select_directory\" size=\"10\" width=\"100\">\n";
for ( $i=0; $i < count( $nlist_dirs ); $i++ ) {
echo "<option value=\"" . $nlist_dirs[$i] . "\">" . $nlist_dirs[$i] . "</option>\n";
}
echo "</select>
\n";
echo "<input type=\"submit\" value=\"Enter Directory\">\n";
echo "</form>\n";
echo "</td><td>\n\n";
echo "<font face=\"courier\"><strong>Files</strong></font>
\n";
echo "<form action=\"ftp.php3\" method=post>\n";
echo "<input type=\"hidden\" name=\"function\" value=\"get\">\n";
echo "<input type=\"hidden\" name=\"phpftp_user\" value=\"" . $phpftp_user . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_passwd\" value=\"" . $phpftp_passwd . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_dir\" value=\"" . $phpftp_dir . "\">\n";
echo "<select name=\"select_file\" size=\"10\">\n";
for ( $i=0; $i < count( $nlist_files ); $i++ ) {
echo "<option value=\"" . $nlist_files[$i] . "\">" . $nlist_files[$i] ." ($nlist_filesize[$i] bytes)". "</option>\n";
}
echo "</select>
\n";
echo "<input type=\"submit\" value=\"Download File\">\n";
echo "</form>\n";
echo "</td></tr>\n\n";
} else {
echo "<p><font color=\"#ff0000\"><strong>Directory empty or not readable</strong></font><p>\n";
}
echo "</table>\n\n";
echo "<p>\n";
echo "<form action=\"ftp.php3\" method=post>\n";
$cdup=dirname( $phpftp_dir );
if ( $cdup == "" ) {
$cdup="/";
}
echo "<input type=\"hidden\" name=\"function\" value=\"dir\">\n";
echo "<input type=\"hidden\" name=\"phpftp_user\" value=\"" . $phpftp_user . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_passwd\" value=\"" . $phpftp_passwd . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_dir\" value=\"" . $cdup . "\">\n";
echo "<input type=\"submit\" value=\"Go up one directory\">\n";
echo "</form>\n";
echo "<p>\n";
echo "<form enctype=\"multipart/form-data\" action=\"ftp.php3\" method=post>\n";
echo "<input type=\"hidden\" name=\"max_file_size\" value=\"1000000\">\n";
echo "<input type=\"hidden\" name=\"phpftp_user\" value=\"" . $phpftp_user . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_passwd\" value=\"" . $phpftp_passwd . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_dir\" value=\"" . $phpftp_dir . "\">\n";
echo "<input type=\"hidden\" name=\"function\" value=\"put\">\n";
echo "<input type=\"submit\" value=\"Upload this:\">\n";
echo "<input name=\"userfile\" type=\"file\">\n";
echo "</form>\n";
echo "<p>\n\n";
echo "<form action=\"ftp.php3\" method=post>\n";
echo "<input type=\"hidden\" name=\"function\" value=\"mkdir\">\n";
echo "<input type=\"hidden\" name=\"phpftp_user\" value=\"" . $phpftp_user . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_passwd\" value=\"" . $phpftp_passwd . "\">\n";
echo "<input type=\"hidden\" name=\"phpftp_dir\" value=\"" . $phpftp_dir . "\">\n";
echo "<input type=\"submit\" value=\"Make subdirectory:\">\n";
echo "<input name=\"new_dir\" type=\"text\">\n";
ftp_quit( $ftp );
phpftp_bottom();
}
}

function phpftp_cd( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_directory ) {
echo "<!-- function phpftp_cd -->\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 "<!-- function phpftp_mkdir -->\n";
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( $phpftp_dir == "" ) {
$phpftp_dir="/";
}
if ( ! $ftp ) {
@ftp_quit( $ftp );
phpftp_top();
echo "<font color=\"#ff0000\"><strong>FTP login failed!</strong></font><p><p>\n";
echo "<a href=\"ftp.php3\">Start over?</a>\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 "<font color=\"#ff0000\"><strong>FTP login failed!</strong></font><p><p>\n";
echo "<a href=\"ftp.php3\">Start over?</a>\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 "<font color=\"#ff0000\"><strong>FTP get failed!</strong></font><p><p>\n<a href=\"ftp.php3\">Start over?</a>\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 "<font color=\"#ff0000\"><strong>Upload failed! Probably no space on server for temp file.</strong></font><p><p>\n<a href=\"ftp.php3\">Start over?</a>\n";
phpftp_bottom();
} else {
if ( ! $ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd ) ) {
unlink( $tmpfile );
phpftp_top();
echo "<font color=\"#ff0000\"><strong>FTP login failed!</strong></font><p><p>\n<a href=\"ftp.php3\">Start over?</a>\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;
}

?>
PHP热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号