ssh2 scp отправить() с помощью php портит pdf
У меня возникла проблема при отправке pdf-файла на мой сервер.
Мой скрипт работает, когда я пытаюсь отправить файл .csv, но проблема возникает, когда я пытаюсь отправить файл pdf
<?php
$user= "username";
$pass= "password";
$src= "/home/desktop/myfile.pdf";
$trg= "/server/path/myfile.pdf";
$con = ssh2_connect('myserver.com', 22);
ssh2_auth_password($con, $user, $pass);
ssh2_scp_send($con, $src, $trg);
?>
Когда я отправляю pdf. он создает pdf-файл в целевом расположении, но он поврежден.
2
Author: Malav Shah, 2013-11-13
1 answers
Попробуйте SFTP. Ниже приведены примеры.
С помощью libssh2:
<?php
$ssh = ssh2_connect('www.domain.tld');
ssh2_auth_password($ssh, 'username', 'password');
$sftp = ssh2_sftp($ssh);
$fp = fopen('ssh2.sftp://'.$sftp.'/home/username/1mb', 'w');
fwrite($fp, str_repeat('a', 1024 * 1024));
Хотя лично я бы рекомендовал вам использовать phpseclib, чистую реализацию PHP SFTP вместо этого. Он имеет ряд преимуществ по сравнению с libssh2.ie. он быстрее и, помимо прочего, имеет лучшую поддержку открытых ключей:
<?php
include('Net/SFTP.php');
$sftp = new Net_SFTP('www.domain.tld');
$sftp->login('username', 'password');
$sftp->put('1mb', str_repeat('a', 1024 * 1024));
1
Author: neubert, 2013-11-15 23:05:05