<div>Redirect is just sending an HTTP redirect to a different controller.  The best example of how to download a file to the client can be seen in core/controllers/components/DownloadBitstreamComponent::download.</div><div>

<br></div><div>Your version will probably be simpler; you will just set the appropriate headers for Content-Type (set to, for example "image/jpeg" or "image/png", whatever your image MIME type is).  Set the other headers as you wish (such as Content-Length, Cache-Control, Expires, Content-Disposition.  When you are ready to send the actual bytes, you'll need to flush any output buffering that happens using the following block:</div>

<div><br></div><div><div>while(ob_get_level() > 0)</div><div>      {</div><div>      ob_end_clean();</div><div>      }</div><div><br></div>Then open your file and send it to the user, like so:</div><div><br></div><div>

$chunkSize = 1024*1024; // 1 MiB chunk written to buffer at a time</div><div>$fh = fopen('path_to_file.png', 'rb'); //use the actual path to the file :)</div><div><div>while(!feof($fh) && connection_status() == 0)</div>

<div>  {</div><div>  echo fread($fh, $chunkSize); //read a chunk and send it to the client</div><div>  }</div><div>fclose($fh);</div><div><br></div><div>exit();</div><div><br></div><div>The exit() call obviously should only be done after all your required logic is finished, but it is necessary within Zend framework to avoid header-after-output errors.</div>

<div><br></div><div>My understanding is that you are just downloading a temporary file and then deleting it, is this correct?</div><div><br></div><div>-Zach</div><div><br></div><div class="gmail_quote">On Tue, Jul 10, 2012 at 1:48 PM, Mona Wong <span dir="ltr"><<a href="mailto:mona@sdsc.edu" target="_blank">mona@sdsc.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><div class="im"><blockquote type="cite">Redirect would be appropriate if you wish to send them an HTTP redirect response header.<br>

</blockquote><div><br></div><span style="white-space:pre-wrap"> </span></div>So $this->redirect() which calls $this->_redirect() just does a HTTP redirect and nothing else?</div><div><br></div><div><span style="white-space:pre-wrap">       </span>What if I want my controller to download an image file like midas.bitstream.download so that I can call my controller as you had suggested in a previous email:</div>

<div><br></div><div><blockquote type="cite">If you want to render the image in the browser, use midas.bitstream.download.  It will send the correct MIME Type header and then stream the raw bytes to the client.  Example:<div>

<br></div><div><img id="theImage" src="" /></div><div><br></div><div>$('#theImage').attr('src', '<a href="http://midas/api/rest?method=midas.bitstream.download...'" target="_blank">http://midas/api/rest?method=midas.bitstream.download...'</a>);</div>

</blockquote></div><div><br></div><div><span style="white-space:pre-wrap">  </span>Is there a trick to getting this working?</div><div class="im"><div><br></div><div>Mona</div><div><br></div><div>
<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">

<div><div><div>*********************************************</div><div>    Mona Wong</div><div>    Web & iPad Application Developer</div><div>    San Diego Supercomputer Center</div><div><br></div><div>    "Forgive everyone everything."</div>

<div><span style="white-space:pre-wrap">                          </span>-- Regina Brett</div><div><div><div>*********************************************</div></div><div><br></div></div></div></div></div></span><br></span><br>
</div>
<br></div></div></blockquote></div><br><br>
</div>