宝哥软件园

PHP SFTP实现上传下载功能

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

一、SFTP简介:

使用SSH协议的Ftp传输协议称为Sftp(安全文件传输)。SFTP和文件传输协议都是文件传输协议。区别:sftp是一种嵌入在ssh中的协议(ssh是一种加密的telnet协议),只要启动ssh服务器就可以使用,而且sftp安全性高,不需要ftp服务器自己启动。Sftp=ssh ftp(安全文件传输协议)。因为ftp是明文传输,所以没有安全性,而sftp是基于ssh的,传输内容是加密的,比较安全。目前网络不是很安全,以前的telnet用户都用SSH2代替(SSH1已经破解)。

Sftp和ftp是同一个工具。但是它的传输文件是用ssl加密的,即使被拦截也无法破解。此外,与ftp相比,sftp具有更多的功能和更多的文件属性设置。

二、SSH2扩展配置

1.下载地址:http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

根据我自己的php版本,我用的是php5.3,所以我下载了PHP _ ssh 2-0.12-5.3-ts-vc9-x86 . zip(下载链接)

2.解压后会有三个文件,libssh2.dll,php_ssh.dll和php_ssh2.pdb

3.将php_ssh.dll和php_ssh2.pdb放在php/ext/下的php扩展目录中。

4.将libssh2.dll复制到c:/windows/system32和c:/windows/syswow64

5.将扩展名=php_ssh2.dll添加到php.ini

6.重新启动Apache并打印phpinfo();将出现SSH2扩展,表示安装成功

第三,SFTP代码演示

调用代码

$ config=array ('host'=' 211。*.*.*、//服务器“端口”=“23”、//端口“用户名”=“测试”、//用户名“密码”=“* * * * * *”、//密码);$ftp=新的Sftp($ config);$ local path=' e :/www/new _ 20170724 . CSV ';$ server path='/new _ 20170724 . CSV ';$st=$ftp-upftp($localpath,$ server path);//上传指定的文件if($ ST==true){ echo ' success ';} else { echo ' fail}SFTP封装类

?PHP/* * * SFtp * */命名空间CommonORGUtil的上传下载文件;类Sftp{ //初始配置为NULL私有$ config=NULL//连接为NULL私有$ conn=NULL//初始化公共函数_ _ construct($ config){ $ this-config=$ config;$ this-connect();} public function connect(){ $ this-conn=ssh 2 _ connect($ this-config[' host '],$ this-config[' port ']);if(ssh 2 _ auth _ password($ this-conn,$ this-config ['username'],$ this-config[' password ']){ } else { echo '无法在服务器上进行身份验证;} }//传输数据传输层协议,获取数据公共函数downtp($ remote,$ local){ $ RES FTP=ssh 2 _ sftp($ this-conn);返回副本(' ssh 2 . sftp :/{ $ RES FTP })。$remote,$ local);}//传输数据传输层协议,写ftp服务器数据公共函数up FTP ($ local,$ remote,$ file _ mode=0777){ $ RESS FTP=ssh 2 _ sftp($ this-conn);返回副本($local,' ssh 2 . sftp :/{ $ RES FTP } '。$ remote);}}以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+