欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于FTP上传文件问题

程序员文章站 2024-02-08 13:07:58
...
各位在工作是如何通过FTP上传文件到服务器上,我在网上找了很多例子,没有一个成功的,要支持SFTP的,希望好心人能帮帮我


回复讨论(解决方案)

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

具体用法请阅读手册

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

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

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
'; } 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
'; } //echo 'login successful
'; } @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 "
";		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实现