使用PHP创建CSV文件并使用phpseclib保存到SFTP

时间:2017-06-18 21:10:22

标签: php csv mysqli phpseclib

我需要从CSV查询生成MySQL文件,并将文件保存到SFTP服务器。我试过下面的代码。 CSV文件已创建,但它为空。我还在浏览器中收到一条关于此行Warning: is_file() expects parameter 1 to be a valid path, resource given的{​​{1}}的错误消息。如果我将$sftp->put($fileName, $fp, NET_SFTP_LOCAL_FILE);移到最后一行,我就不会收到错误,但数据仍未显示在文件中。有人可以让我知道如何将数据保存到创建的文件中吗?

fclose($fp);

2 个答案:

答案 0 :(得分:1)

second argument不是句柄,而是直接内容。

我认为您可以在第二个参数中执行:stream_get_contents($fp);

$content = stream_get_contents($fp);
fclose($fp);
$sftp->put($fileName, $content, NET_SFTP_LOCAL_FILE);

答案 1 :(得分:1)

尝试这样的事情:

<?php
$fp = fopen('php://temp', 'r+');
// do stuff
rewind($fp);
$sftp->put($filename, $fp);

phpseclib(假设您使用的是足够新的版本)将检测到第二个参数是流资源,并会尝试相应地读取它。