【问题标题】:ssh2_scp_send() using php corrupts pdfssh2_scp_send() 使用 php 损坏 pdf
【发布时间】:2013-11-25 11:58:35
【问题描述】:

我在向服务器发送 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?
  • @neubert 我还没试过。你能提供一个sn-p或如何实现它的说明吗?

标签: php scp


【解决方案1】:

试试 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, a pure PHP SFTP implementation。与 libssh2 相比,它具有许多优点。 IE。 it's faster and has better public key support among other things:

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

$sftp = new Net_SFTP('www.domain.tld');
$sftp->login('username', 'password');

$sftp->put('1mb', str_repeat('a', 1024 * 1024));

【讨论】:

    猜你喜欢
    • 2017-06-29
    • 2015-10-12
    • 1970-01-01
    • 2014-03-24
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2022-01-14
    相关资源
    最近更新 更多