我想从FTP服务器下载或读取文件的一部分,而不是下载整个文件,这只是为了查看FTP服务器中存在的数据是正确的。
我们有太多的客户端,FTP服务器中的每个文件都可能是任意大小,因此,我只想下载或读取文件的一部分,而不是下载或 ,假设我只需要5kb的文件,或者如果要从文件的第100行开始。
我在PHP中有一个如下所示的函数,可以完成一半的工作,但是对于较大的文件,它会失败。
function readByBytes($path)
{
try
{
$handle = fopen($path,"rb");
if ($handle)
{
while (($buffer = fgets($handle,4096)) !== false)
{
}
if (!feof($handle))
{
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
}
catch (Exception $e)
{
echo $e;
}
}
$filename = "ftp://username:password@127.0.0.1/prod/clientfeed.csv";
$iterator = readByBytes($filename);
foreach ($iterator as $key => $iteration)
{
/// if file read is 5kb or some 100 lines
break;
}
有人可以用PHP或Python帮助我或指导我吗
在获得警告错误以下
PHP Warning: fopen(ftp://...@127.0.0.1/prod/clientfeed.csv): failed
to open stream: FTP server reports 550 Could not get file size.
in /var/www/html/newLpplugins/ftp_read_line_line.php on line 80
PHP Warning: filesize(): stat failed for
ftp://...@127.0.0.1/prod/clientfeed.csv in
/var/www/html/newLpplugins/ftp_read_line_line.php on line 81
PHP Warning: fread() expects parameter 1 to be resource,bool given
in /var/www/html/newLpplugins/ftp_read_line_line.php on line 81
PHP Warning: fclose() expects parameter 1 to be resource,bool given
in /var/www/html/newLpplugins/ftp_read_line_line.php on line 82
PHP Warning:
file_get_contents(ftp://...@127.0.0.1/prod/clientfeed.csv): failed to
open stream: FTP server reports 550 Could not get file size.
in /var/www/html/newLpplugins/ftp_read_line_line.php on line 84
谢谢。