各位在工作是如何通过FTP上传文件到服务器上,我在网上找了很多例子,没有一个成功的,要支持SFTP的,希望好心人能帮帮我sftp ftp

解决方案 »

  1.   

    php 在各种版本中都提供有 ftp 扩展
    php 在非 window 版本中提供有 ssh2 扩展(属PECL)其中前缀为 ssh2_sftp_ 的函数就是具体用法请阅读手册
      

  2.   

    老大,有没有一个例子呀,急呀,我的机器是centos的,咋配置来的,我找了二天了都没有搞定
      

  3.   

    我也没弄过,看手册吧 http://ca2.php.net/manual/zh/book.ssh2.php
      

  4.   

    <?php
    class Ftp {
    var $host;
    var $user;
    var $pswd;
    var $connectId = null;
    var $loginId = null;

    function Ftp($host, $user, $pswd, $timeout=900){
    if($host) {
    $this->host = $host;
    }
    if($user) {
    $this->user = $user;
    }
    if($pswd) {
    $this->pswd = $pswd;
    }
    if(!$this->connectId = @ftp_connect($this->host)) {
    $this->error("");
    }
    else {
    //echo 'connect is ok<br />';
    }
    if(!$this->loginId = @ftp_login($this->connectId, $this->user, $this->pswd)){
    $this->error("");
    }
    else {
    if(@ftp_pasv($this->connectId, true)) {
    //echo 'pasv mode is open<br />';
    }
    //echo 'login successful<br />';
    }
    @ftp_set_option($this->connectId, FTP_TIMEOUT_SEC, $timeout);
    }

    function chdir($targetDir) {
    return @ftp_chdir($this->connectId, $targetDir);
    }

    function put($sourceFile, $targetFile, $ftpType=FTP_BINARY) {
    return @ftp_put($this->connectId, $targetFile, $sourceFile, $ftpType);
    }
    function chmod($file, $pr=0777){
    return @ftp_chmod($this->connectId, $pr, $file);
    }
    function mkdir($dirName=''){
    if(!$dirName) {
    return false;
    }
    else {
    return @ftp_mkdir($this->connectId, $dirName);
    }
    }

    function exec($cmd=''){ //for some unsafe system
    if(!$cmd){
    return false;
    }
    return @ftp_exec($this->connectId, $cmd);
    }

    function ls($pwd='./') {
    return @ftp_nlist($this->connectId, $pwd);
    }

    function pwd() {
    return @ftp_pwd($this->connectId);
    }

    function rmFile($file) {
    return @ftp_delete($this->connectId, $file);
    }

    function close(){
    return @ftp_close($this->connectId);
    }

    function error($errorMsg) {
    //echo "<pre>";
    print_r($errorMsg);
    //echo "</pre>";
    return;
    }
    }
    ?>  $ftp = new Ftp($row['ftpHost'], $row['ftpUser'], $row['ftpPswd']);
            if($ftp->loginId) {
            
             $webRoot = WEB_ROOT;
            
                $res=$ftp->put(APP_ROOT. "upload". "/". $fileName, $webRoot. $fileName);
                $res=$ftp->put(APP_ROOT."database.php", $webRoot."database.php");
                $res=$ftp->put(APP_ROOT."wp-config.php", $webRoot."wp-config.php");
                $res=$ftp->put(APP_ROOT."updatesql.php", $webRoot."updatesql.php");
                $ftp->close();
                
          $url = "http://".$row['ftpHost']."/database.php";
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FAILONERROR, false);
    $result = curl_exec($ch);
    curl_close($ch);
      

  5.   

    本帖最后由 PhpNewnew 于 2013-04-02 21:47:54 编辑
      

  6.   

    php ftp文件上传类
    你看看这个,看能解决问题不!
      

  7.   

    我想实现程序能自动上传的功能,比如通过shell实现