我是Zend Framework的新手,我遇到了这样的问题。在我的网页上,我有用户要下载的产品演示。当他们想要下载它们时,他们必须填写表格(姓名,公司,电子邮件,联系电话),然后单击“提交”开始下载。我希望将它们重定向到产品页面。这是我在控制器中的showFormAction代码:
if ($this->_request->isPost())
{
if (!$form->isValid($this->_request->getPost()))
{
//shows messages and the form again
}
else
{
$file = $this->findYoungestFile('/demo/'.$product.'/');
$this->sendFileToClient($file);
$this->_redirect('/products/'.$product);
//sending mail
$infoMail = new InfoMail($this->_request->getPost(), 'download', $product);
$this->sendInfoMails($infoMail);
}
}
else
//show form
这里是sendFileToClient函数
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
重定向不起作用。我认为发送到浏览器的标题存在问题,但我不知道如何解决它。有人可以帮帮我吗?
谢谢&问候, 马乌戈热塔
答案 0 :(得分:1)
当您尝试将用户重定向到另一个页面时,HTTP标头已经发送了。换句话说,您无法提供文件并同时进行重定向。好吧,至少你试图这样做的方式。