I use this code to download a file to memory from ftp:
public static function getFtpFileContents($conn_id , $file)
{
ob_start();
$result = ftp_get($conn_id, "php://output", $file, FTP_BINARY);
$data = ob_get_contents();
ob_end_clean();
if ($resul)
return $data;
return null;
}
How can I make it directly send the file to the user (browser) without saving to disk and without redirecting to the ftp server ?
Just remove the output buffering (
ob_start()
and the others).Use just this:
Though if you want to add
Content-Length
header, you have to query file size first usingftp_size
:(add error handling)
This code works. Thanks all.