Last active
November 16, 2022 09:38
-
-
Save danielbwa/6993444 to your computer and use it in GitHub Desktop.
List and download all files in a directory through sftp with php / ssh2. In my example i use scandir to list the files and ssh2_scp_recv to grab a file. I've found a lot of examples using fopen to grab the remote file, that didn't work for me and i found the code below cleaner than the fopen option. For an example on how to do the same as my exa…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$username = "your_username"; | |
$password = "your_pass"; | |
$url = 'your_stp_server_url'; | |
// Make our connection | |
$connection = ssh2_connect($url); | |
// Authenticate | |
if (!ssh2_auth_password($connection, $username, $password)) throw new Exception('Unable to connect.'); | |
// Create our SFTP resource | |
if (!$sftp = ssh2_sftp($connection)) throw new Exception('Unable to create SFTP connection.'); | |
$localDir = '/path/to/your/local/dir'; | |
$remoteDir = '/path/to/your/remote/dir'; | |
// download all the files | |
$files = scandir('ssh2.sftp://' . $sftp . $remoteDir); | |
if (!empty($files)) { | |
foreach ($files as $file) { | |
if ($file != '.' && $file != '..') { | |
ssh2_scp_recv($connection, "$remoteDir/$file", "$localDir/$file"); | |
} | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Suddenly, it doesn't work for files with tab in the name