ホームページ  >  記事  >  バックエンド開発  >  FTPによるファイルアップロードの問題について

FTPによるファイルアップロードの問題について

WBOY
WBOYオリジナル
2016-06-23 14:05:15782ブラウズ

職場で FTP 経由でサーバーにファイルをアップロードするにはどうすればよいですか? インターネット上で多くの例を見つけましたが、どれも成功しませんでした。親切な方が助けてくれると幸いです。


ディスカッション (解決策)

PHP はさまざまなバージョンで ftp 拡張機能を提供します

PHP は非ウィンドウ バージョンで ssh2 拡張機能 (PECL に属する) を提供します ssh2_sftp_ という接頭辞が付いている関数は

具体的な使用法についてはマニュアルをお読みください

ボス、いますか。例は? ああ、急いで、私のマシンは centos です。設定方法を 2 日間探しましたがわかりません

私もまだやっていません。マニュアルを読んでください 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 ですが、その設定方法を探しています。 2日間試しましたが、まだわかりません


あなた マシンはcentosです sftpを使用しますか? sudo apt-get install ssh

sshに付属しているftpです。 。 。

php FTP ファイルアップロードクラス

これを見て、問題が解決できるかどうかを確認してください。

シェルなどでプログラムを自動アップロードする機能を実装したい

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。