So what it does is successfully connects then uploads the file logo.png
but the contents of the file isn't what was on web host or uploaded with html if i use a html upload code. What it puts in the file is the ACTUAL text between the second ' 's so for that very example the contents of logo.png is literally logo.png
and not the picture.
require_once("ftp/vendor/autoload.php");
use phpseclibNetSFTP;
$sftp = new SFTP('SERVER');
if (!$sftp->login('USER', 'PW')) {
throw new Exception('Login failed');
}
$sftp->put("/some/path/logo.png", "logo.png", NET_SFTP_LOCAL_FILE);
If you would read through the documentation, you would find out that the second argument of the
put()
function is$data
, therefore not the file path, but the actual data to write:To upload a local file, the easiest way is to read the content into one variable that will be passed to the
put()
function:Edit: You are probably using a new version of phpseclib, which renamed these constants to make them more object-like. With a new version, you should use