使用phpseclib上传文件到sftp

先上代码吧

<?php

require_once ("vendor/autoload.php");

use phpseclib\Crypt\RSA;
use phpseclib\Net\SFTP;

$sftp = new SFTP('Ip|Adress');

// create new RSA key
$privateKey = new RSA();

// in case that key has a password
//$privateKey->setPassword('private key password');

// load the private key
$privateKey->loadKey(file_get_contents('/Users/path/to/auth.pem'));

// login via sftp  
if (!$sftp->login('root', $privateKey)) {
    throw new Exception('sFTP login failed');
}

// now you can list what's in here
//$filesAndFolders = $sftp->nlist();

// you can change directory
//$sftp->chdir('coolstuffdir');

// get a file
//$sftp->get('remoteFile', 'localFile');

// create a remote new file with defined content
//$sftp->put('newfile.txt', 'new file content');

// put a local file  第一个参数是远程地址,第二个参数是本地地址,第三个是固定常量
$sftp->put('/data/remote/dir/image.png', '/Users/path/to/image.png', $sftp::SOURCE_LOCAL_FILE);
`

composer.json文件内容,注意版本,因为v3和v2有一些区别,这里使用到了v2版本

{
    "require": {
        "phpseclib/phpseclib": "^2.0"
    }
}

暂无评论

相关推荐

php 脚本指定参数

<?php $param_arr = getopt('a:b:'); $a = $param_arr['a'] 调用 php script.php -av1 -bv2 注 …

php时间戳添加时分秒等偏移

我们使用time()可以打印出时间戳,但是我们想要加个偏移,比如用于缓存等,我们就要添加时分秒的偏移,可以用下边的代 …

php重新安装curl扩展

因为我们的php不支持https,所以我们需要重新编译php,不过因为我们用的是M1,有一些问题待解决,最终失败在了php安装 …

微信扫一扫,分享到朋友圈

使用phpseclib上传文件到sftp