Heim > Backend-Entwicklung > PHP-Tutorial > 关于FTP上传文件问题

关于FTP上传文件问题

WBOY
Freigeben: 2016-06-23 14:05:15
Original
829 Leute haben es durchsucht

各位在工作是如何通过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 "
Nach dem Login kopieren
"; 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);
Nach dem Login kopieren

WinSCP

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

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

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

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage