Symfony file letöltés [megoldva]

Sziasztok!

A következő problémával szívok már egy ideje, hátha van valakinek megoldása.

Adott egy attachment nevű táblám:

tms_attachment:
id: ~
filename: { type: varchar(255), required: true}
data: { type: blob}
size: { type: integer, required: true}
mime: { type: varchar(255), required: true}
uploaded_at: { type: timestamp, required: false}

Ebbe akarok file-okat feltölteni, illetve innen letölteni. A fájl feltöltés gyönyörűen működik,
mysql query browser-rel látom a feltöltött adatokat. A problémám a file letöltéssel van, valamiért
nem működik.

A következővel próbálkoztam:

public function executeShow(sfWebRequest $request)
{
$this->tms_attachment = TmsAttachmentPeer::retrieveByPk($request->getParameter('id'));
$this->forward404Unless($this->tms_attachment);

$this->getResponse()->clearHttpHeaders();
$this->getResponse()->addHttpMeta('content-type', $this->tms_attachment->getMime());
$this->getResponse()->addHttpMeta('content-length', $this->tms_attachment->getSize());

$this->getResponse()->setContent($this->tms_attachment->getData()->dump());
return sfView::NONE;
}

A setContent-nél hogyha a getMime()-ot pakolom bele, oké. Ha a getSize()-ot, akkor is. Ha a getData()-val próbálkozok, akkor viszont a következőt adja vissza "Resource id #118"

Hogy tudok ebből a resource-ből valamiféle normális adatstream-et kinyerni?

Hozzászólások

A megoldás:

$this->tms_attachment = TmsAttachmentPeer::retrieveByPk($request->getParameter('id'));
$this->forward404Unless($this->tms_attachment);

$this->getResponse()->clearHttpHeaders();

$this->getResponse()->setHttpHeader('Pragma', '');
$this->getResponse()->setHttpHeader('Cache-Control', '');
$this->getResponse()->setHttpHeader('Content-Type', 'application/pdf');
$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename="'.$this->tms_attachment->getFilename().'"');
$this->getResponse()->addHttpMeta('content-type', $this->tms_attachment->getMime());
$this->getResponse()->addHttpMeta('content-length', $this->tms_attachment->getSize());

$this->getResponse()->setContent(stream_get_contents($this->tms_attachment->getData()));
return sfView::NONE;

szerkesztve