我需要从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);
答案 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(假设您使用的是足够新的版本)将检测到第二个参数是流资源,并会尝试相应地读取它。