Hello again, I just realized that the reply I thought i left here never made it to the list.
Quite some time ago, I realized my problem was whitespace following a closing tag in my Controller file. Stupid mistake, but one that had me digging for solutions for quite a few days. Posting this here in the hopes that I can save someone else the same futile search for answers. -Mike On Sat, Oct 25, 2008 at 4:18 PM, Behzad <[EMAIL PROTECTED]> wrote: > You may want to use readfile() instead of fpassthru(), which saves you the > fopen() call. > > > On Sat, Oct 25, 2008 at 2:57 AM, Kevin McArthur <[EMAIL PROTECTED]>wrote: > >> You'll see a significant performance improvement if you don't load the >> files contents into PHP. The best way to do this is with an apache mod >> called X-SendFile. (http://tn123.ath.cx/mod_xsendfile/) but if you cant >> install the module, then you'll want to use fpassthru(). Fopen/fread and >> file_get_contents approaches have significant overhead and really shouldn't >> be used. >> >> >> >> Chris Martin wrote: >> >> The following self-contained example works fine for me in my environment. Try >> it on yours, it may help to narrow the problem down further: >> >> public function imgtestAction() >> { >> $this->_helper->layout->disableLayout(); >> >> $logo = >> file_get_contents("http://framework.zend.com/images/PoweredBy_ZF_4LightBG.png" >> <http://framework.zend.com/images/PoweredBy_ZF_4LightBG.png>); >> $type = 'image/png'; >> >> $response = $this->getFrontController()->getResponse(); >> >> $response->setHeader('Content-Type', $type, true); >> $response->setHeader('Content-Length', count($logo), true); >> $response->setHeader('Content-Transfer-Encoding', 'binary', true); >> $response->setHeader('Cache-Control', 'max-age=3600, must-revalidate', >> true); >> $response->setBody($logo); >> >> $response->sendResponse(); >> exit; >> } >> >> >> >> Michael Crumm wrote: >> >> >> Giuliano, >> >> Thanks for the thought! Unfortunately, I tried that as well and still >> can't >> seem to get an image out. >> Here's my controller action: >> >> public function viewAction() >> { >> $this->_helper->layout->disableLayout(); >> $logo = $this->_logo; >> $modifiedDateGM = gmdate('D, d M Y H:i:s', >> strtotime($logo['modified'])) . ' GMT'; >> >> $response = $this->getFrontController()->getResponse(); >> $response->setHeader('Last-Modified', $modifiedDateGM, true); >> $response->setHeader('Content-Type', $logo['type'], true); >> $response->setHeader('Content-Length', $logo['size'], true); >> $response->setHeader('Content-Transfer-Encoding', 'binary', true); >> $response->setHeader('Cache-Control', 'max-age=3600, >> must-revalidate', true); >> $response->setBody($logo['data']); >> $response->sendResponse(); >> exit; >> } >> >> Seems like someone over in the zf-db list was having a similar issue - I'm >> having a similar discussion over there. >> >> Any more thoughts? >> >> -Mike >> >> >> >> >> >> -- >> >> Kevin McArthur >> >> StormTide Digital Studios Inc. >> Author of the recently published book, "Pro PHP"http://www.stormtide.ca >> >> > > > -- > Kind regards, > -behzad >
