使用SFTP将CSV文件上传到服务器

问题描述 投票:1回答:0

我想我有点迷路了。 我有一个连接到数据库并将内容放在CSV文件中的函数

private function obtainFile() {
    $dbh = new PDO("mysql:host=".Config::DB_HOST.";dbname=".Config::DB_NAME."", Config::DB_USER, Config::DB_PASSWORD);

    $stmt = $dbh->prepare("SELECT * from `some_table`");
    $stmt->execute();

    $filename = 'someFile.csv';

    $data = fopen($filename, 'w');

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        fputcsv($data, $row);
    }

    fclose($data);

    return $filename;
}

一切都很好,当我执行它时,我得到了带有期望数据的CSV文件。 该函数返回生成的CSV文件的文件名。

然后,我将此CSV文件位置传递给另一个功能,以便可以通过SFTP进行传输

private function transferFile($csvFile) {
    $host = Config::SFTP_HOST;
    $port = Config::SFTP_PORT;
    $user = Config::SFTP_USER;
    $password = Config::SFTP_PASSWORD;

    $sftp = new SFTP($host, $port);

    if (!$sftp->login($user, $password)) {
        echo $sftp->getSFTPLog();
    }else{
        echo $upload = $sftp->put($csvFile, $csvFile);
    }
}

因此,文件传输没有任何问题,但是传输的CSV文件只是包含我的文件名的CSV文件!

我是否需要做其他事情以确保我传输的是实际产生的文件,而不仅仅是具有文件名的CSV文件?

谢谢

php sftp phpseclib
© www.soinside.com 2019 - 2024. All rights reserved.