[英]Create CSV File in PHP and Save to SFTP using phpseclib
我需要從MySQL
查詢生成CSV
文件,然后將文件保存到SFTP
服務器。 我嘗試了下面的代碼。 CSV
文件已創建,但為空。 我還在瀏覽器中收到一條Warning: is_file() expects parameter 1 to be a valid path, resource given
消息, Warning: is_file() expects parameter 1 to be a valid path, resource given
為此行提供的Warning: is_file() expects parameter 1 to be a valid path, resource given
$sftp->put($fileName, $fp, NET_SFTP_LOCAL_FILE);
。 如果我移動fclose($fp);
到最后一行,我沒有收到錯誤,但是數據仍然沒有出現在文件中。 有人可以讓我知道如何將數據保存到創建的文件中嗎?
$fileName = 'dataFiles/reports/Report Summary/Report Summary.csv';
$sql = mysqli_query($db, "
SELECT *
FROM reports
WHERE reportID = 1
");
$fp = fopen('php://output', 'w');
$first = true;
while($row = mysqli_fetch_assoc($sql)){
if ($first) {
fputcsv($fp, array_keys($row));
$first = false;
}
fputcsv($fp, $row);
}
fclose($fp);
$sftp->put($fileName, $fp, NET_SFTP_LOCAL_FILE);
第二個參數不是句柄,而是直接的內容。
我認為您可以做到: stream_get_contents($fp);
在第二個參數中。
$content = stream_get_contents($fp);
fclose($fp);
$sftp->put($fileName, $content, NET_SFTP_LOCAL_FILE);
嘗試這樣的事情:
<?php
$fp = fopen('php://temp', 'r+');
// do stuff
rewind($fp);
$sftp->put($filename, $fp);
phpseclib(假設您使用的是足夠新的版本)將檢測到第二個參數是流資源,並將嘗試從中讀取相應的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.