Hi,

I've a problem of < headers already sent > when I send a file to the
browser.

My config is :
- CentOs 5.2 with php 5.2.9
- symfony version 1.2.4 (stable)


The code to show the problem, I've made this method :

[code]
  public function executeFile(sfWebRequest $request)
  {
    $this->line     = $request->getParameter('line', 1024);
    $this->path     = sfConfig::get('sf_web_dir').'/tmp/';
    $this->filename = 'file.txt';

    // generate a text file of (n line of 1KB)

    $my1kb = str_repeat('0123456789abcdef', 64);

    $handle = fopen($this->path.$this->filename, "wb");
    for ($i=0; $i < $this->line; $i++)
    {
      fwrite($handle, $my1kb);
    }
    fclose($handle);

    // send the file to the browser

    $response = $this->getResponse();
    $response->clearHttpHeaders();
    $response->setContentType('text/plain; charset=UTF-8');
    $response->setHttpHeader('Content-Disposition', 'attachment;
filename='.$this->filename);
    $response->setHttpHeader('Content-Length',
filesize($this->path.$this->filename));
    $response->setContent(file_get_contents($this->path.$this->filename,
false));
    $response->sendHttpHeaders();
    $response->sendContent();

    return sfView::NONE;
  }
[/code]

The result (file of 1MB) :

[result]
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab
cdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567
89abcdef0123456789abcdef0123456789abcdef. . . 
. . . 3456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by
(output started at
./lib/vendor/symfony/lib/response/sfResponse.class.php:105) in
<b>./lib/vendor/symfony/lib/response/sfWebResponse.class.php</b> on line
<b>335</b><br />
<br /> .
[/result]

If I generate a file less then 5KB,  it works fine !
I test the same code on WinXP (XAMPP with php 5.2.4), it works fine !

Where is the problem ?

I've clean the cache
I've made tests on prod en dev environnement
There is no ?> at the end of the class
I've upgrade php from 5.2.8 to 5.2.9 and it's the same result.

Is PHP ? is symfony ? or else ?

Olivier


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to