赞
踩
最近在弄一个老项目自动上传功能,需要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
找到另一个帖子怎么上传文件
但是他的帖子写的不是很详细,我在此在整理一下
把下载的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代表成功
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。