用php写 ftp文件上传函数教程
本篇教程是一款关于用php写 ftp文件上传函数教程,php功能很强大,可以用他自身带的函数来实例ftp的功能,实现文件上传功能,代码如下:
<?php function phpftp_top() { echo "<!-- function phpftp_top --> " ; echo "<html> " ; echo "<head> " ; echo "<title>PHP FTP Client v1.4</title> " ; echo "</head> " ; echo "<body bgcolor=" #ffffff "> " ; echo "<font face=" courier "> " ; } function phpftp_bottom() { echo " <!-- function phpftp_bottom --> " ; echo "</font> " ; echo "</body> " ; echo "</html> " ; } function phpftp_login() { phpftp_top(); echo "<!-- function phpftp_login --> " ; echo "<p> " ; echo "<form action=" ftp.php3 " method=post> " ; echo "Login: " ; echo "<input name=" phpftp_user " type=" text "> " ; echo "<p> " ; echo "Password: " ; echo "<input name=" phpftp_passwd " type=" password "> " ; echo "<p> " ; echo "Directory: " ; echo "<input name=" phpftp_dir " type=" text "> " ; echo "<p> " ; echo "<input type=" hidden " name=" function " value=" dir "> " ; echo "<input type=" submit " value=" connect "> " ; echo "</form> " ; echo "<p> " ; 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 --> " ; $ftp = @phpftp_connect( $phpftp_user , $phpftp_passwd ); if ( ! $ftp ) { echo "<strong>FTP login failed!</strong> " ; echo "<a href=" ftp.php3 ">Start over?</a> " ; 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> " ; $phpftp_dir =ftp_pwd( $ftp ); } echo "<strong>Current directory:</strong> " . $phpftp_dir . " "; if ( $phpftp_dir == "/" ) { $phpftp_dir = "" ; } echo "<table border=0 cellspacing=20> " ; 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> " ; echo "<font face=" courier"><strong>Directories</strong></font> "; echo "<form action=" ftp.php3 " method=post> " ; echo "<input type=" hidden " name=" function " value=" cd "> " ; echo "<input type=" hidden " name=" phpftp_user " value=" " . $phpftp_user . " "> " ; echo "<input type=" hidden " name=" phpftp_passwd " value=" " . $phpftp_passwd . " "> " ; echo "<input type=" hidden " name=" phpftp_dir " value=" " . $phpftp_dir . " "> " ; echo "<select name=" select_directory " size=" 10 " width=" 100 "> " ; for ( $i =0; $i < count ( $nlist_dirs ); $i ++ ) { echo "<option value=" " . $nlist_dirs[$i] . " ">" . $nlist_dirs [ $i ] . "</option> " ; } echo "</select> "; echo "<input type=" submit " value=" Enter Directory "> " ; echo "</form> " ; echo "</td><td> " ; echo "<font face=" courier"><strong>Files</strong></font> "; echo "<form action=" ftp.php3 " method=post> " ; echo "<input type=" hidden " name=" function " value=" get "> " ; echo "<input type=" hidden " name=" phpftp_user " value=" " . $phpftp_user . " "> " ; echo "<input type=" hidden " name=" phpftp_passwd " value=" " . $phpftp_passwd . " "> " ; echo "<input type=" hidden " name=" phpftp_dir " value=" " . $phpftp_dir . " "> " ; echo "<select name=" select_file " size=" 10 "> " ; for ( $i =0; $i < count ( $nlist_files ); $i ++ ) { echo "<option value=" " . $nlist_files[$i] . " ">" . $nlist_files [ $i ] . " ($nlist_filesize[$i] bytes)" . "</option> " ; } echo "</select> "; echo "<input type=" submit " value=" Download File "> " ; echo "</form> " ; echo "</td></tr> " ; } else { echo "<p><font color=" #ff0000 "><strong>Directory empty or not readable</strong></font><p> " ; } echo "</table> " ; echo "<p> " ; echo "<form action=" ftp.php3 " method=post> " ; $cdup =dirname( $phpftp_dir ); if ( $cdup == "" ) { $cdup = "/" ; } echo "<input type=" hidden " name=" function " value=" dir "> " ; echo "<input type=" hidden " name=" phpftp_user " value=" " . $phpftp_user . " "> " ; echo "<input type=" hidden " name=" phpftp_passwd " value=" " . $phpftp_passwd . " "> " ; echo "<input type=" hidden " name=" phpftp_dir " value=" " . $cdup . " "> " ; echo "<input type=" submit " value=" Go up one directory "> " ; echo "</form> " ; echo "<p> " ; echo "<form enctype=" multipart/form-data " action=" ftp.php3 " method=post> " ; echo "<input type=" hidden " name=" max_file_size " value=" 1000000 "> " ; echo "<input type=" hidden " name=" phpftp_user " value=" " . $phpftp_user . " "> " ; echo "<input type=" hidden " name=" phpftp_passwd " value=" " . $phpftp_passwd . " "> " ; echo "<input type=" hidden " name=" phpftp_dir " value=" " . $phpftp_dir . " "> " ; echo "<input type=" hidden " name=" function " value=" put "> " ; echo "<input type=" submit " value=" Upload this: "> " ; echo "<input name=" userfile " type=" file "> " ; echo "</form> " ; echo "<p> " ; echo "<form action=" ftp.php3 " method=post> " ; echo "<input type=" hidden " name=" function " value=" mkdir "> " ; echo "<input type=" hidden " name=" phpftp_user " value=" " . $phpftp_user . " "> " ; echo "<input type=" hidden " name=" phpftp_passwd " value=" " . $phpftp_passwd . " "> " ; echo "<input type=" hidden " name=" phpftp_dir " value=" " . $phpftp_dir . " "> " ; echo "<input type=" submit " value=" Make subdirectory: "> " ; echo "<input name=" new_dir " type=" text "> " ; ftp_quit( $ftp ); phpftp_bottom(); } } function phpftp_cd( $phpftp_user , $phpftp_passwd , $phpftp_dir , $select_directory ) { echo "<!-- function phpftp_cd --> " ; $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 --> " ; $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> " ; echo "<a href=" ftp.php3 ">Start over?</a> " ; 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> " ; echo "<a href=" ftp.php3 ">Start over?</a> " ; 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> <a href=" ftp.php3 ">Start over?</a> " ; 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> <a href=" ftp.php3 ">Start over?</a> " ; 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> <a href=" ftp.php3 ">Start over?</a> " ; 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 ); //开源代码phpfensi测试数据 break ; case "mkdir" ; phpftp_mkdir( $phpftp_user , $phpftp_passwd , $phpftp_dir , $new_dir ); break ; case "" ; phpftp_login(); break ; } ?>查看更多关于用php写 ftp文件上传函数教程 - php函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31125