代码之家  ›  专栏  ›  技术社区  ›  Peter Smit

如何继续从php上传到ftp

  •  1
  • Peter Smit  · 技术社区  · 15 年前

    我有一个php脚本,它将文件从一个非常低带宽、低可靠性连接的位置上传到ftp服务器。我正在使用 ftp functions of php .

    有时在传输过程中连接会断开。以后有没有办法继续上传?怎么能做到?

    编辑: 人们误解了这是在浏览器上发生的。然而,事实并非如此。它是一个php cli脚本。所以它是关于一个本地文件被上传到ftp,没有用户交互。

    6 回复  |  直到 9 年前
        1
  •  2
  •   Nathan Osman    15 年前

    尝试获取远程文件的大小,然后根据不同情况发出appe ftp命令。这将附加到文件中。见 http://webmasterworld.com/forum88/4703.htm 举个例子。如果您想真正控制它,我建议您使用php的curl函数。

        2
  •  1
  •   Axel Goddard    14 年前

    我认为前面的答案都错了。php管理简历,因为必须激活ftp_autodesk,并且必须在上载期间激活ftp_autoresume。代码应该是这样的:

    $ftp_connect = ftp_connect($host, $port);
    ftp_set_option ($ftp_connect, FTP_AUTOSEEK, TRUE);
    $stream = fopen($local_file, 'r');
    $upload = ftp_fput($ftp_connect, $file_on_ftp, $stream, FTP_BINARY, FTP_AUTORESUME);
    fclose($stream);
    
        3
  •  0
  •   Savageman    15 年前

    ftp_(f)put 有一个$startpos参数。您应该能够使用此参数执行所需的操作。(从服务器上的文件大小开始传输)。 但是我从来没有用过,所以我不知道它的可靠性。你应该试试。

        4
  •  0
  •   creep3007    9 年前

    编辑: Another Example 由卡巴洛

    Look here . 很简单很好的例子。

    你可以这样做:

    <?php
         $host = 'your.host.name';
         $user = 'user';
         $passwd = 'yourpasswd';
    
    
         $ftp_stream = ftp_connect($host);
         //EDIT
         ftp_set_option($ftp_stream, FTP_AUTOSEEK, 1);
         if ( ftp_login($ftp_stream,$user,$passwd) ){
            //activate passive mode
            //ftp_pasv($ftp_stream, TRUE);
    
            $ret = ftp_nb_put($ftp_stream, $remotefile, $localfile, FTP_BINARY,FTP_AUTORESUME);
            while ( FTP_MOREDATA == $ret ) {
                // continue transfer
                $ret = ftp_nb_continue($ftp_stream);
            }
    
            if (FTP_FINISHED !== $ret){
               echo 'Failure occured on transfer ...';
            } 
         }
         else {
             print "FAILURE while login ...";
    
         }
    
         //free
         ftp_close($ftp_stream);
    ?>
    
        5
  •  -1
  •   1myb    15 年前

    你是说你将允许用户从你的网络界面上传简历吗? 这套衣服是你的吗? http://www.webmasterworld.com/php/3931706.htm

        6
  •  -2
  •   1myb    15 年前

    只需要使用filezilla就可以为你做任何事情…我是说上传过程… 它将保留数据并在关闭后重新打开您将能够继续处理Q…

    为了实现自动化和跟踪,只需使用我们的方法…即git和capistrano php有一个选项 试试谷歌吧…