Net_SFTPドキュメントを翻訳してみました。

http://phpseclib.sourceforge.net/documentation/net.html#net_sftp を翻訳してみました。

5.2.3. Net_SFTP の例

<?php
include('Net/SFTP.php');

$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
    exit('Login Failed');
}

echo $sftp->pwd() . "\r\n";
$sftp->put('filename.ext', 'hello, world!');
print_r($sftp->nlist());
?>

5.2.4. put($remote_file, $data [, $mode])

put() は、デフォルトではローカルファイルから読み取りません。
$data は $remote_file に直接書き出します。
例えば、$data に 'filename.ext' を設定してから get() すると、'filename.ext'という文字列が中身になっている12バイト長のファイルを取得します。

$mode に NET_SFTP_LOCAL_FILE を設定すると、この動作を変更します。
NET_SFTP_LOCAL_FILE では、ローカルファイルシステム上のfilename.ext と同じバイト数の内容が含まれることになります。
filename.ext が1MBのファイルであれば、それは 大きな $remote_file になります。

現在、バイナリモードのみがサポートされています。
なので、改行を変換する必要がある場合は、自分で面倒をみる必要があります。

5.2.5. get($remote_file [, $local_file])

$local_file が未定義の場合、$remote_file には取得した内容が文字列で入っています。
処理が失敗した場合は false となります。 $local_file が定義されている場合は、処理結果に応じて true または falseを返します。

5.2.6. pwd(), chdir(), mkdir() and rmdir()

pwd()は現在のディレクトリを返し、chdir()はディレクトリの変更、
mkdir()はディレクトリを作成し、rmdir()は、ディレクトリを削除します。
エラーが発生した場合、これらはすべて false を返します。 正常に完了した場合は true を返します。

5.2.7. chmod() and size()

chmod()は、ファイルのアクセス権を設定し、成功した場合に新しいファイルのアクセス権を返します。
エラーの場合は false を返します。
ファイルを設定するパーミッションは8進数であることが期待され、$sftp->chmod(0777, $filename) の様になります。
size()は任意のファイルのサイズをバイト数で返します。

5.2.8. nlist() and rawlist()

nlist($dir = '.') は、カレントディレクトリの内容を数値インデックスの配列で返します。
rawlist() は、ファイル名がキー、値がファイルの属性が連想配列となっている配列を返します。
ディレクトリは、最初のパラメータで変更できます。

rawlist() には type パラメータがあります。
NET_SFTP_TYPE_REGULAR、NET_SFTP_TYPE_DIRECTORY、NET_SFTP_TYPE_SYMLINKまたはNET_SFTP_TYPE_SPECIAL
ただし、これらが無いサーバもあります。

5.2.9. stat() and lstat()

stat()は、特定のファイルについての情報を返します。
これに対しlstat()はファイルまたはシンボリックリンクに関する情報を返します。

5.2.10. delete() and rename()

両者の機能は簡単で、delete()はファイルやディレクトリを削除し、rename()はこれらの名前を変更します。
両者は成功した場合に true を、失敗した場合は false を返します。

5.2.11. Debugging SFTP

ログを記録するには、NET_SFTP_LOGGING 定数を定義する必要があります。
完全なログが必要な場合は、define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX) する必要があります。

$ssh->getSFTPLog()、は暗号化されていない16進とASCII文字列を返します。
記録したい場合は、define('NET_SFTP_LOGGING', NET_SFTP_LOG_SIMPLE)する必要があります。

$ssh->getLog()は、配列を返します。

両方のログは、パケットを送信するためにかかった時間が含まれています。 前者は一般的な診断に有効、後者はプロファイリングに便利です。

例を次に示します。

<?php
include('Net/SFTP.php');
define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX); // or NET_SFTP_LOG_SIMPLE

$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
    exit('Login Failed');
}

print_r($sftp->nlist());
echo $ssh->getSFTPLog();
?>

ログを取得するよりも、場合によっては、文字列を返す $ssh->getLastSFTPError()、
配列を返す $ssh->getSFTPErrors() を見た方が効果的です。