Zend Framework başlıklarını nasıl ayarlanacağı

4 Cevap php

Ben bir soru, böyle bir şey nasıl yapabilirim var:

header("Content-Disposition: inline; filename=result.pdf"); 
header("Content-type: application/x-pdf");

Zend Framework ile, ben denedim:

    	$this->getResponse()
	    ->setHeader('Content-Disposition:inline', ' filename=result.pdf')
		->setHeader('Content-type', 'application/x-pdf');

Ama düzgün çalışmıyor.

Saygılarımızla,

4 Cevap

Yanıt başlıklarını ayarlamak için deyim biraz hatalı biçimlendirilmiş:

$this->getResponse()
     ->setHeader('Content-Disposition', 'inline; filename=result.pdf')
     ->setHeader('Content-type', 'application/x-pdf');

Yukarıdaki çalışmalıdır - Content-Disposition-başlığındaki farka dikkat ediniz.

(Yerine tarayıcıda belge yükleme) yükleme kutusu zorlamak istediğinizde arada ... kullanmalısınız Content-Disposition attachment.

$this->getResponse()
     ->setHeader('Content-Disposition', 'attachment; filename=result.pdf')
     ->setHeader('Content-type', 'application/x-pdf');

Tarayıcıya bağlı olarak, o [(2)] ayrıca Content-Length ayarlamak veya Content-type bir arada (birden başlıkları) {bir veya daha fazla değiştirmek zorunda mümkün olabilir }, application/octet-stream ve / ya da application/download. Ve ben yorum yazdı bazen önbelleğe başlıkları indirmeye engel olabilir. -Önbellek başlıkları gönderildiği görmek için kontrol edin.

Geç masaya, ben this action helper tarayıcı dosyaları veya bellek veri göndermek için basit, yeniden kullanılabilir bileşen olarak tavsiye ederim.

Önbelleğe alma, elden çıkarılması için seçenekler vardır ve Apache SendFile kullanabilir

Benim tahminim gibi bir şey yapıyoruz ki:

$this->getResponse()
        ->setHeader('Content-Disposition:inline', ' filename=result.pdf')
        ->setHeader('Content-type', 'application/x-pdf');
fpassthru($filename);
exit();

falan.

Burada tepkisi (başlıklarını hale getiren) işlenecek asla. Yanıt genellikle, post-aksiyon baskı sırasında işlenir.

(Eğer non-oo kodu belirtildiği gibi) doğrudan başlıklarını ayarlamak zorunda, ya da $this->getResponse()->sendHeaders() doğrudan kullanır.

Çözülmüş

    	$this->getResponse()
	     ->setHeader('Content-Disposition:inline', ';filename=result.pdf')
			 ->setHeader('Content-Type', 'application/x-pdf');