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

 代码如下 复制代码

<?
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="start/">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="start/">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="start/">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="start/">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="start/">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="start/">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 );
break;
case "mkdir";
phpftp_mkdir( $phpftp_user, $phpftp_passwd, $phpftp_dir, $new_dir );
break;
case "";
phpftp_login();
break;
}

?>

时间: 2024-08-29 06:00:52

用php写 ftp文件上传函数教程的相关文章

用PHP写FTP文件上传

上传 $ftp_server = "*.*.*.*";$ftp_user = "lu";$ftp_pass = "love you"; // set up a connection or die$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); $login_result = ftp_login($conn_id, $ft

php ftp文件上传函数(基础版)_php技巧

复制代码 代码如下: <?php // 定义变量 $local_file = 'local.zip'; $server_file = 'server.zip'; // 连接FTP服务器 $conn_id = ftp_connect($ftp_server); //验证登录服务器 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // 下载文件 if (ftp_get($conn_id, $local_file

Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题_java

废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String path,String filename,InputStream input) { boolean success=false; FTPClient ftp=new FTPClient();//org.apache.commons.net.ftp

Android关于FTP文件上传和下载功能详解

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 此篇博客为整理文章,供大家学习. 1.首先下载commons-net  jar包,可以百度下载. FTP的文件上传和下载的工具类: package ryancheng.example.progressbar; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Outpu

利用ASP.NET设计FTP文件上传(上)

如果要用ASP来作一个FTP文件上传的页面,我想很多人立刻就会想到要用第三方开发的组件,利用第三方的组件,虽然开发起来相对比较容易.但一般来说,免费下载的第三方的组件都有某些方面的功能限制,若要购买正版的第三方组件,对于国内的用户,花销也是一个不小的数字,就是能够承担的起,烦杂的手续也使很多人望而却步.虽然微软公司在本身的视窗系统里面也提供了一个可以用来上传文件的组件--Posting Acceptor.但用过这个组件的朋友们都有一种普遍的感觉,就是实在不好用. 现在好了,自从微软公司推出了.N

利用ASP.NET设计FTP文件上传(下)

四. 程序源代码: <% @ Import Namespace=" System.IO " %><html ><BODY ><SCRIPT LANGUAGE = "VB" RUNAT = "SERVER" > Sub UploadFile_Clicked ( Sender as Object, e as EventArgs ) Dim lstrFileName as string Dim lstrF

java实现FTP文件上传与文件下载_java

本文实例为大家分享了两种java实现FTP文件上传下载的方式,供大家参考,具体内容如下 第一种方式: package com.cloudpower.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import sun.net.TelnetInputStream; import sun.net.TelnetO

ASP.NET设计FTP文件上传的解决方案_实用技巧

如果要用ASP来作一个FTP文件上传的页面,我想很多人立刻就会想到要用第三方开发的组件,利用第三方的组件,虽然开发起来相对比较容易.但一般来说,免费下载的第三方的组件都有某些方面的功能限制,若要购买正版的第三方组件,对于国内的用户,花销也是一个不小的数字,就是能够承担的起,烦杂的手续也使很多人望而却步.虽然微软公司在本身的视窗系统里面也提供了一个可以用来上传文件的组件--Posting Acceptor.但用过这个组件的朋友们都有一种普遍的感觉,就是实在不好用. 现在好了,自从微软公司推出了.N

原创的ASP文件上传函数库,比动网、amao的都差了很多,不过是学习的好资料

原创的ASP文件上传函数库,比动网.amao的都差了很多,不过是学习的好资料 54powerman 说明:如果你需要file表单的串值,用GetFullName("file")如果需要file表单的文件名,用GetFileName("file")如果需要file表单的扩展名,用GetExtName("file")如果需要普通文本表单的值,用MyRequest("password")如果需要file表单的二进制值,也是用MyRe