Bij het onderstaande programma wordt een bestand ge-ftp-t. Maar na de flush komt de java tekst ook nog in het bestand. Is er iemand die mij kan uitleggen waarom?

<php
if(mysqli_num_rows($var_sel)>0){
$filenaam = 'incasso_eerst_'.date("Ymd").'.xml';
$verwerken=$map.$filenaam;
$handle = fopen($verwerken,"w");
fwrite($handle,"test".chr(10));
fclose($handle);

//FTP
ob_start();
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($verwerken));
header('Content-Transfer-Encoding: binary');
header('Expires: 0'); // geen data uit cache gebruiken
header('Cache-Control: must-revalidate');
header('Pragma: public'); // heeft te maken met caching
header('Content-Length: ' . filesize($verwerken));
ob_clean(); // clean output buffer
flush();
readfile($verwerken);
while (@ob_end_flush());
}

?>
<script type="text/javascript">
window.close();
</script>

Toevoeging op 17/11/2013 10:13:12:

Excuses: De laatst } staat er in werkelijkheid niet.
Ja natuurlijk, alle output die je verstuurd naar de browser na een "Content-Disposition: attachment;" header zal de browser als content van de file beschouwen. De browser kan op geen enkele manier zien dat jij opeens denkt 'en hier stopt de file, nu komt er iets anders'. Je kan dus geen enkele andere output dan alleen de file versturen.

Reageren