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

时间:2017-12-06 22:53:01

标签: php sftp phpseclib

我想我有点迷失了。我有一个连接到数据库并将内容放在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文件?

由于

0 个答案:

没有答案