关于FTP上传文件问题

jxdyzwh 2013-04-02 01:46:36
各位在工作是如何通过FTP上传文件到服务器上,我在网上找了很多例子,没有一个成功的,要支持SFTP的,希望好心人能帮帮我
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxdyzwh 2013-04-09
  • 打赏
  • 举报
回复
我想实现程序能自动上传的功能,比如通过shell实现
LNMP自学者 2013-04-03
  • 打赏
  • 举报
回复
php ftp文件上传类 你看看这个,看能解决问题不!
黄袍披身 2013-04-02
  • 打赏
  • 举报
回复
引用 2 楼 jxdyzwh 的回复:
老大,有没有一个例子呀,急呀,我的机器是centos的,咋配置来的,我找了二天了都没有搞定


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

就是ssh带的那个ftp嘛。。。
狄默默斯基 2013-04-02
  • 打赏
  • 举报
回复
WinSCP
狄默默斯基 2013-04-02
  • 打赏
  • 举报
回复
<?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);
xuzuning 2013-04-02
  • 打赏
  • 举报
回复
我也没弄过,看手册吧 http://ca2.php.net/manual/zh/book.ssh2.php
jxdyzwh 2013-04-02
  • 打赏
  • 举报
回复
老大,有没有一个例子呀,急呀,我的机器是centos的,咋配置来的,我找了二天了都没有搞定
xuzuning 2013-04-02
  • 打赏
  • 举报
回复
php 在各种版本中都提供有 ftp 扩展 php 在非 window 版本中提供有 ssh2 扩展(属PECL)其中前缀为 ssh2_sftp_ 的函数就是 具体用法请阅读手册

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧