Home  >  Article  >  Backend Development  >  关于FTP上传文件问题

关于FTP上传文件问题

WBOY
WBOYOriginal
2016-06-23 14:05:15819browse

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


回复讨论(解决方案)

php 在各种版本中都提供有 ftp 扩展
php 在非 window 版本中提供有 ssh2 扩展(属PECL)其中前缀为 ssh2_sftp_ 的函数就是

具体用法请阅读手册

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

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

<?phpclass 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 class="brush:php;toolbar:false">";		print_r($errorMsg);		//echo "
"; 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);

WinSCP

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

你的机器是centos 要使用sftp? sudo apt-get install ssh

就是ssh带的那个ftp嘛。。。

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn