因为你没有把问题说清楚。
使用ftp函数至少一方需要有ftp服务器

解决方案 »

  1.   

    我WEB程序是运行在服务器上,有FTP功能,想把本地文件传上去,就这样。请唠叨帮帮忙
      

  2.   

    把本地文件传至服务器?
    用用这个:
    /*phpftp 汉化改良版 www.cayoo.com*/
    <?
    function phpftp_top() {
    echo "<!-- function phpftp_top -->\n";
    echo "<html>\n";
    echo "<head>\n";
    echo "<title>cayoo.com</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 "<a href=\"http://www.cayoo.com\"> 2000-2001 Cayoo.com</a>\n";
    echo "</body>\n";
    echo "</html>\n";
    }function phpftp_login() {
    phpftp_top();
    echo "<!-- function phpftp_login -->\n";
    echo "<p>\n";
    echo "<form action=\"ftp.php\" method=post>\n";echo "FTP的用户名:&nbsp;&nbsp;";
    echo "<input name=\"phpftp_user\" type=\"text\">\n";
    echo "<p>\n";
    echo "FTP的密码:&nbsp;&nbsp;";
    echo "<input name=\"phpftp_passwd\" type=\"password\">\n";
    echo "<p>\n";
    echo "联结后要打开的目录:&nbsp;";
    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=\"确定\">\n";
    echo "</form>\n";
    echo "<p>\n";
    phpftp_bottom();
    }
      

  3.   

    function phpftp_connect( $phpftp_user, $phpftp_passwd ) {
    //$phpftp_host="192.168.1.1";        /* 你要连接的服务器的地址*/
    $phpftp_host="10.34.137.10";
    $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 登陆失败!</strong>\n";
    echo "<a href=\"ftp.php\">点击这里重新联结!</a>\n";
    phpftp_bottom();
    } else {
    if ( ! $phpftp_dir ) {
    $phpftp_dir=ftp_pwd( $ftp );
    }
    if ( ! @ftp_chdir( $ftp, $phpftp_dir ) ) {
    echo "<font color=\"#ff0000\"><strong>失败,不能打开这个目录!</strong></font><p><p>\n";
    $phpftp_dir=ftp_pwd( $ftp );
    }
    echo "<strong>当前路径:</strong> " . $phpftp_dir . "<br>\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>目录</strong></font><br>\n";
    echo "<form action=\"ftp.php\" 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><br>\n";
    echo "<input type=\"submit\" value=\"进入所选目录\">\n";
    echo "</form>\n";
    echo "</td><td>\n\n";
    echo "<font face=\"courier\"><strong>文件</strong></font><br>\n";
    echo "<form action=\"ftp.php\" 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><br>\n";
    echo "<input type=\"submit\" value=\"下载文件\">\n";
    echo "</form>\n";
    echo "</td></tr>\n\n";
    } else {
    echo "<p><font color=\"#ff0000\"><strong>此目录为空或不可读取!</strong></font><p>\n";
    }
    echo "</table>\n\n";
    echo "<p>\n";
    echo "<form action=\"ftp.php\" 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=\"返回上一级目录\">\n";
    echo "</form>\n";
    echo "<p>\n";
    echo "<form enctype=\"multipart/form-data\" action=\"ftp.php\" 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=\"上传这个文件:\">\n";
    echo "<input name=\"userfile\" type=\"file\">\n";
    echo "</form>\n";
    echo "<p>\n\n";
    echo "<form action=\"ftp.php\" 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=\"新建目录:\">\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 登陆失败!</strong></font><p><p>\n";
    echo "<a href=\"ftp.php\">点击这里重新联结?</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 登陆失败!</strong></font><p><p>\n";
    echo "<a href=\"ftp.php\">点击这里重新联结?</a>\n";
    phpftp_bottom();
    } else {
    srand((double)microtime()*1000000);
    $randval = rand();
    $tmpfile="../temp/" . $select_file . "." . $randval;
    if ( ! ftp_get( $ftp, $tmpfile, $select_file, FTP_BINARY ) ) {
    ftp_quit( $ftp );
    phpftp_top();
    echo "<font color=\"#ff0000\"><strong>FTP 失败!</strong></font><p><p>\n<a href=\"ftp.php\">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="../temp/" . $userfile_name . "." . $randval;
    if ( ! copy( $userfile, $tmpfile ) ) {
    phpftp_top();
    echo "<font color=\"#ff0000\"><strong>上传文件失败! </strong></font><p><p>\n<a href=\"ftp.php\">Start over?</a>\n";
    phpftp_bottom();
    } else {
    if ( ! $ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd ) ) {
    unlink( $tmpfile );
    phpftp_top(); 
    echo "<font color=\"#ff0000\"><strong>FFTP 登陆失败!</strong></font><p><p>\n<a href=\"ftp.php\">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;
    }?>
      

  4.   

    1.修改PHP。INI,使上传文件大小无限制
    2。代码中加set_time_limit (0);
      

  5.   

    唠叨老大,下面那个程序是不是ftp.php
      

  6.   

    传不了大文件,它还是先把文件用HTTP方式传上去,在用FTP移个目录而已
      

  7.   

    谁说copy不行,太小的话你可以进php.ini里面改
    我管服务器就可以上传30兆的东西
    上传软件和音乐基本上差不多够了
    不过太大的话也不太好,传电影还是建议用ftp软件传上去然后自己再在添加页面里面直接输地址
    如果你用ftp函数,上传速度基本上差不多
    我用过一次ftp上传图片,图片上传上去大小没变,但是打开一看全乱了,花花绿绿的不知道是什么东西
      

  8.   

    呵呵,是的。一直没注意到这点。
    按你的要求是需要在本地有web服务器的,在本地服务器上使用fopen("ftp://...","w");
    打开远程ftp服务器上的文件。