ssh2_scp_send() 使用 php 会损坏 PDF


ssh2_scp_send() using php corrupts 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文件,但它已损坏。

尝试 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相比,它具有许多优点。即。它更快,并且具有更好的公钥支持等:

<?php
include('Net/SFTP.php');
$sftp = new Net_SFTP('www.domain.tld');
$sftp->login('username', 'password');
$sftp->put('1mb', str_repeat('a', 1024 * 1024));