我尝试生成CSV文件并将其发送到FTP帐户。
我的问题是填充CSV文件。
此代码运行良好,但是我只能在 $ fp 中传递字符串。当我尝试使用数组时,文件到达ftp帐户为空。
我不明白为什么。
此外,我现在尝试传递一个数组以进行测试,但是对我来说最好的是能够使用一个对象,我该如何生成此文件?
select parentcode
from t
group by parentcode
having min(ParentStatus) = max(ParentStatus) and
min(ParentStatus) = 'Closed' and
min(ChildStatus) = max(ChildStatus) and
min(ChildStatus) = 'Closed' ;
答案 0 :(得分:1)
此代码已经在创建要上传的文件。
$fp = fopen($Fname, 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
现在,您可以使用$Fname
直接上传该文件(ftp_put
):
$upload_result = ftp_put($ftp_conn, $remote_file, $Fname, FTP_ASCII);
所有带有php://temp
的代码都是毫无意义的,因为它只是(尝试)创建文件的另一个副本-删除它。
尽管我认为您实际上是想避免完全创建本地文件。显然,您的代码基于Creating and uploading a file in PHP to an FTP server without saving locally。
然后您需要执行以下操作:
$local_file = fopen('php://temp', 'r+');
foreach ($list as $fields) {
fputcsv($local_file, $fields);
}
rewind($local_file);
// ...
$upload_result = ftp_fput($ftp_conn, $remote_file, $local_file, FTP_ASCII);