在PHP中更新FTP服务器中的CSV文件[重复]

问题描述 投票:2回答:1
我正在尝试更新CSV文件,该文件在外部FTP服务器中,我尝试遵循基本的ftp_fput(),但是它不起作用。运行我不需要的脚本时,文件未更新,并且正在下载空白CSV文件。我一直在尝试解决此问题,但找不到解决方法

<?php // connect and login to FTP server //ftp setup $ftp_server = "ftp.test.test.co.uk"; $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server"); $ftp_username='ftp_username'; $ftp_userpass='ftp_userpass'; $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); //local DB setup $servername = "localhost"; $username = "root"; $password = "TEST"; $dbname= "TEST"; // Create connection $conn = new mysqli($servername, $username, $password,$dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } //END database connection// $sql = "SELECT sku,SUM(quantity) as quantity FROM tbl_old_books GROUP BY isbn"; $result = $conn->query($sql); header("Content-Disposition: attachment; filename=AllOpenOrders.csv"); header("Content-Type: application/csv; "); // file creation $file = fopen('php://temp', 'W'); $header = array("SKU","QUANTITY"); fputcsv($file, $header); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { fputcsv($file, $row ); } } $remote_path = "/export/AllOpenOrders.csv"; ftp_fput($ftp_conn, $remote_path, $file, FTP_BINARY, 0); fclose($file); ftp_close($ftp_conn); ?>

php ftp
1个回答
1
投票
您的文件处理程序$file指向您在文件末尾写入的内容。通过ftp_fput没什么可写的。

您可以在写入FTP之前使用rewind($file);在文件的开头重置文件指针:rewind documentation

© www.soinside.com 2019 - 2024. All rights reserved.