php如何实现sftp上传
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"php如何实现sftp上传",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"php如何实现sftp上传"吧!本文操作环境:window
千家信息网最后更新 2026年11月02日php如何实现sftp上传
这篇文章主要讲解了"php如何实现sftp上传",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"php如何实现sftp上传"吧!
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
php怎么实现sftp上传?
php 实现SFTP上传文件
php 实现sftp文件上传完全可以用php.net 官网中的方式,代码如下:
class SFTPConnection{ private $connection; private $sftp; public function __construct($host, $port=22) { $this->connection = @ssh3_connect($host, $port); if (! $this->connection) throw new Exception("Could not connect to $host on port $port."); } public function login($username, $password) { if (! @ssh3_auth_password($this->connection, $username, $password)) throw new Exception("Could not authenticate with username $username " . "and password $password."); $this->sftp = @ssh3_sftp($this->connection); if (! $this->sftp) throw new Exception("Could not initialize SFTP subsystem."); } public function uploadFile($local_file, $remote_file) { $sftp = $this->sftp; $stream = @fopen("ssh3.sftp://$sftp$remote_file", 'w'); if (! $stream) throw new Exception("Could not open file: $remote_file"); $data_to_send = @file_get_contents($local_file); if ($data_to_send === false) throw new Exception("Could not open local file: $local_file."); if (@fwrite($stream, $data_to_send) === false) throw new Exception("Could not send data from file: $local_file."); @fclose($stream); }}try{ $sftp = new SFTPConnection("localhost", 22); $sftp->login("username", "password"); $sftp->uploadFile("/tmp/to_be_sent", "/tmp/to_be_received");}catch (Exception $e){ echo $e->getMessage() . "\n";}但是在进行中遇到了一个问题, 我的php版本是 PHP 5.6.31 (cli) (built: Aug 2 2017 15:05:23) , 在执行
$stream = @fopen("ssh3.sftp://$sftp$remote_file", 'w');fopen的时候 执行文件 会报 "Segmentation fault" 的错误, 然后变成以下方式便可以解决
$stream = @fopen("ssh3.sftp://" . intval($sftp) . $remote_file, 'w');其中,在实现sftp上传的时候,没有在意上传文件和上传目录的区别(例如: /upload 和 /upload/test.txt 的问题), 导致每次执行php 都会报 fopen(): Unable to open ssh3.sftp://5/upload on remote host. 问题解决方法就是 认真, 大写的认真
以上就是php做的, 只要登录sftp服务器 进行查看便知道结果.
sftp 命令登录方式:
sftp -oPort=port user@server 然后输入密码, 进去之后可以到相对的目录查看文件是否存在.
感谢各位的阅读,以上就是"php如何实现sftp上传"的内容了,经过本文的学习后,相信大家对php如何实现sftp上传这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
文件
问题
就是
方式
学习
内容
时候
目录
会报
登录
代码
命令
大写
密码
思路
情况
文章
方法
是在
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东万易互联网科技有限公司惠州分公司
广州淘业互联网络科技
中关村互联网科技集团
新华互联网科技学院
智能科技公司是互联网公司吗
互联网科技资迅
互联网科技未来
互联网科技革命
科技创新互联网企业
易通互联网络科技有限公司
米客互联网科技
广州善班互联网科技
茂名市互联网科技产业园
互联网公司科技股
浙南科技城互联网大厦建设工程
长沙茂晟互联网科技有限公司
2021世界互联网领先科技成果发布
山东大美朱楼互联网科技有限公司
互联网科技手机排行榜
好易买互联网科技
上海挚品互联网科技有限公司
互联网最新的科技
恒银科技与互联网金融
创业天下互联网科技有限公司
以后互联网后是啥科技
常德市电业局互联网科技部
民营互联网公司国防科技
明优互联网科技有限公司
长沙渺峰互联网科技有限公司
前海云享互联网科技