【问题标题】:Php get Excel file via sftpphp通过sftp获取Excel文件
【发布时间】:2020-06-30 21:27:19
【问题描述】:

我是 PHP 的一个完全的菜鸟,并试图通过这里的论坛解决我的问题,但没有运气! 我有一个从 FTP 服务器下载 .csv 文件的小下载脚本。该服务器已更改为 sftp 服务器。

我面临的问题是我无法再连接到服务器,只是看不出我的代码为什么不起作用。非常感谢任何帮助。

我的旧脚本:

function downloadFile(){
    $ftp_server = "feed.onftpsite.com";
    $ftp_username="1234";
    $ftp_userpass="1234";

    $conn_id = ftp_ssl_connect($ftp_server);
    $login_result = ftp_login($conn_id, $ftp_username, $ftp_userpass);
    ftp_pasv($conn_id, true);
    $server_file = "map/file.csv";
    $localfile = "some_other_file.csv";
    if (ftp_get($conn_id, $localfile, $server_file, FTP_ASCII)){
        echo "Successfully downloaded $localfile.";
    }else{
        echo "Error in downloading $localfile.";
    }
    ftp_close($conn_id);
}

现在我尝试将其更改为 sftp 格式:

function downloadFile(){
    $ftp_server = "feed.onftpsite.com";
    $ftp_username="1234";
    $ftp_userpass="1234";

    $conn_id = ssh2_connect($ftp_server, 22);
    $login_result = ssh2_auth_password($conn_id, $ftp_username, $ftp_userpass);
    ftp_pasv($conn_id, true);
    $server_file = "map/file.csv";
    $localfile = "some_other_file.csv";

    if (fopen($conn_id, $localfile, $server_file, FTP_ASCII)){
        echo "Successfully downloaded $localfile.";
    }else{
        echo "Error in downloading $localfile.";
    }
    //ftp_close($conn_id);
}

为什么上面的代码不起作用?

【问题讨论】:

  • 运行新代码时实际发生了什么?您收到任何错误消息吗?他们说什么?

标签: php ftp sftp


【解决方案1】:

不确定是什么错误,但我可以推荐尝试phpseclib。否则,请尝试从上面的代码中提供错误消息。

phpseclib 使用非常简单,例如:

$sftp = new \phpseclib\Net\SFTP($host);
if (!$sftp->login($user, $password)) {
    exit('Login Failed');
}
$sftp->chdir('textfiles/');

$file = $sftp->get('example.txt');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多