加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹤壁站长网 (https://www.0392zz.cn/)- 分布式云、存储数据、视频终端、媒体处理、内容创作!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-06-17 08:40:49 所属栏目:PHP教程 来源:互联网
导读:本篇教程是一款关于用php写 ftp文件上传函数教程,php功能很强大,可以用他自身带的函数来实例ftp的功能,实现文件上传功能,代码如下: ?php function phpftp_top() { echo !-- function phpftp_top -- ; echo html ; echo head ; echo titlePHP FTP Client v1.4
  本篇教程是一款关于用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.com
  break;  
  case "mkdir";  
  phpftp_mkdir( $phpftp_user, $phpftp_passwd, $phpftp_dir, $new_dir );  
  break;  
  case "";  
  phpftp_login();  
  break;  
  }
   
  ?> 

(编辑:鹤壁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读