I transfer files with PHP and SSH2 to an remote server.
I use this:
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
But sometimes the file on the remote server is incomplete. I have the assumption that SSH2 doesn't transfer the EOF or anything else.
Do you have any ideas or solutions?
The problem is that you don't close the SSH session. So the internal buffers aren't flushed and the files aren't written to disk fully.
Here is a workaround - just close the session with:
ssh2_exec($connection, 'exit');
This will cause all buffers to be flushed and your files should be transfered completely.
Hope, that helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With