当前位置:   article > 正文

windows php5.6版本ssh2扩展解决方案 以及sftp上传文件_libssh2 php 5.6 windows

libssh2 php 5.6 windows

最近在弄一个老项目自动上传功能,需要sftp模式上传文件

但是windows下的ssh2扩展0.13为空

https://windows.php.net/downloads/pecl/releases/ssh2

我出去找了一圈也没找到,所以看到这个帖子的人放弃找windows php5.6版本的ssh2扩展吧

然后继续查询,我看到了另一种方案 使用 phpseclib 但是这个只有连接测试

https://cloud.tencent.com/developer/ask/sof/103221968

找到另一个帖子怎么上传文件

https://stackoverflow.nilmap.com/question?dest_url=https://stackoverflow.com/questions/22006880/upload-files-to-sftp-server-via-php-phpseclib

但是他的帖子写的不是很详细,我在此在整理一下

把下载的phpseclib文件放到执行文件的同目录下

define("CDN_PATH","/var/www/xxx/notice/"); 此var是服务器的根目录

define("CDN_ADDR","ip:端口");

define("CDN_USER","服务器帐号");

define("CDN_PASS","服务器密码");

function uploadRes($file) //$file 是文件名eg.filename.txt

{

$server = CDN_ADDR;

$username = CDN_USER;

$password = CDN_PASS;

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include 'Net/SFTP.php'; //引入包文件

$sftp = new Net_SFTP($server);

if (!$sftp->login($username, $password)) {

echo 'Login Failed.';

echo $sftp->getSFTPLog();

}else{

//目标服务器文件放置路径,源服务器文件放置相对路径,上传模式文件

$upload = $sftp->put(CDN_PATH.$file,"./notice/".$file,NET_SFTP_LOCAL_FILE);

// $upload = $sftp->put("/var/www/xxx/notice/filename.txt","./notice/filename.txt",NET_SFTP_LOCAL_FILE);

echo $upload;exit; //返回1代表成功

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/894705
推荐阅读
相关标签
  

闽ICP备14008679号