Maison > Article > développement back-end > Analyse détaillée de l'implémentation PHP SFTP des fonctions de téléchargement et de téléchargement
Cet article présente principalement en détail les fonctions de téléchargement et de téléchargement de PHP SFTP. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
1. Introduction à SFTP :
Le protocole qui utilise le protocole SSH pour la transmission FTP est appelé SFTP (Secure File Transfer). Sftp et Ftp sont tous deux des protocoles de transfert de fichiers. Différence : sftp est un protocole inclus dans ssh (ssh est un protocole telnet crypté). Tant que le serveur sshd est démarré, il est disponible. De plus, sftp est plus sécurisé et ne nécessite pas le démarrage du serveur ftp. sftp = ssh + ftp (Secure File Transfer Protocol). Étant donné que FTP transmet du texte brut, il n'y a aucune sécurité, tandis que FTP est basé sur SSH et le contenu de la transmission est crypté, ce qui est plus sécurisé. Le réseau actuel n'est pas très sécurisé. Ceux qui utilisaient telnet dans le passé sont passés à ssh2 (SSH1 a été cracké). L'outil sftp est utilisé de la même manière que ftp. Cependant, ses fichiers transmis sont cryptés via SSL et ne peuvent pas être piratés même s'ils sont interceptés. De plus, sftp a plus de fonctions que ftp, y compris certains paramètres d'attributs de fichier supplémentaires.2. Configuration de l'extension SSH2
3. SFTP code DEMO
Code d'appel$config = array( 'host' =>'211.*.*.*', //服务器 'port' => '23', //端口 'username' =>'test', //用户名 'password' =>'*****', //密码 ); $ftp = new Sftp($config); $localpath="E:/www/new_20170724.csv"; $serverpath='/new_20170724.csv'; $st = $ftp->upftp($localpath,$serverpath); //上传指定文件 if($st == true){ echo "success"; }else{ echo "fail"; }Classe d'encapsulation SFTP
<?php /** * SFtp上传下载文件 * */ namespace Common\ORG\Util; class Sftp { // 初始配置为NULL private $config = NULL; // 连接为NULL private $conn = NULL; // 初始化 public function __construct($config) { $this->config = $config; $this->connect(); } public function connect() { $this->conn = ssh2_connect($this->config['host'], $this->config['port']); if( ssh2_auth_password($this->conn, $this->config['username'], $this->config['password'])) { }else{ echo "无法在服务器进行身份验证"; } } // 传输数据 传输层协议,获得数据 public function downftp($remote, $local) { $ressftp = ssh2_sftp($this->conn); return copy("ssh2.sftp://{$ressftp}".$remote, $local); } // 传输数据 传输层协议,写入ftp服务器数据 public function upftp( $local,$remote, $file_mode = 0777) { $ressftp = ssh2_sftp($this->conn); return copy($local,"ssh2.sftp://{$ressftp}".$remote); } }Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun. Recommandations associées :
PHP+ sftp Implémentation du téléchargement et du téléchargement de fichiers
Exemple détaillé de PHP SFTP implémentant la fonction de téléchargement et de téléchargement
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!