Maison > Article > développement back-end > Explication détaillée d'exemples de fonctions de téléchargement et de téléchargement utilisant PHP SFTP
Cet article vous présentera d'abord SFTP. Plus tard, nous partagerons principalement avec vous des exemples de la façon dont SFTP implémente les fonctions de téléchargement et de téléchargement. Nous espérons que cela pourra vous aider.
1. Introduction à SFTP :
Le protocole qui utilise le protocole SSH pour la transmission FTP est appelé SFTP (Secure File Transfer et FTP sont tous deux des transferts de fichiers). protocoles. 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
1. Adresse de téléchargement : http://windows.php.net/downloads/pecl/releases/ ssh2/0.12/
Choisissez le package d'extension en fonction de votre version de php Ici, j'utilise php5.3, j'ai donc téléchargé php_ssh2-0.12-5.3-ts-vc9-x86.zip ( Lien de téléchargement. )
2. Après décompression, il y aura trois fichiers, libssh2.dll, php_ssh.dll, php_ssh2.pdb.
3. Placez php_ssh.dll et php_ssh2.pdb sous votre répertoire d'extension php php/ext/.
4. Copiez libssh2.dll dans c:/windows/system32 et c:/windows/syswow64
5. Ajoutez-le à php.ini extension=php_ssh2. dll
6. Redémarrez Apache et imprimez phpinfo(); L'extension SSH2 apparaîtra, indiquant une installation réussie
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); } }
Recommandations associées :
Comment implémenter SFTP en php
Explication détaillée des étapes pour utiliser SFTP dans Phpstorm
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!