Я новичок в Zend Framework, и у меня есть такая проблема. На моей веб-странице у меня есть демонстрация продуктов, которые будут загружаться пользователями. Когда они захотят загрузить их, они должны заполнить форму (имя, компания, адрес электронной почты, контактный телефон), а затем нажмите «Отправить», чтобы начать загрузку. Я бы хотел, чтобы они были перенаправлены на страницу продукта. Вот мой showFormAction код в контроллере:Загрузка файлов с Zend Framework
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);
Перенаправление не работает. Я полагаю, что проблема связана с заголовками, отправленными в браузер, но я не знаю, как их решить. Может ли кто-нибудь помочь мне, пожалуйста?
Благодарности & С уважением, Малгожата
Что вы подразумеваете под "не работает"? Какой результат вы получаете? – mingos
Он отправляет файл в браузер, отправляет электронное письмо, но не перенаправляет его, оставаясь на той же странице. – gosia
Ох. Переадресация также является заголовком. Не действует после того, как вы уже отправили заголовок загрузки файла :). – mingos