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

Explication détaillée d'exemples de fonctions de téléchargement et de téléchargement utilisant PHP SFTP

小云云
小云云original
2018-02-01 10:16:422100parcourir

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[&#39;host&#39;], $this->config[&#39;port&#39;]);
 if( ssh2_auth_password($this->conn, $this->config[&#39;username&#39;], $this->config[&#39;password&#39;]))
 {
  
 }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

Utilisez nodejs pour surveiller les modifications de fichiers et utilisez sftp pour les télécharger sur le serveur

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn