我正在尝试在我的joomla组件中获取控制器任务,以便在提交和验证表单后下载文件,然后它应该清除状态并重定向回空白表单。由于某种原因,它不是重定向 - 任何人都可以解释为什么?
ob_end_clean();
header("Content-Type: application/pdf");
header("Content-Transfer-Encoding: Binary");
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=" .basename(JPATH_BASE."/images/".$filename) . ";");
header("Content-Description: File Transfer");
header("Expires: 0");
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Connection: close");
readfile(JPATH_BASE."/images/".$filename);
// Clear the profile id from the session.
$app->setUserState('com_mycomponent.edit.thisform.id', null);
// Redirect to the list screen.
$this->setMessage(JText::_('SUCCESS'));
$this->setRedirect(JRoute::_($item->link, false));
// Flush the data from the session.
$app->setUserState('com_mycomponent.edit.thisform.data', null);
编辑添加:
readfile()
似乎停止了它的标题。在视图中,我有一个if语句,检查它们是否是成功消息,然后显示它。我把readfile放在那里,但它仍然停止重定向。
有人可以想到让用户在不使用readfile的情况下下载文件的替代方法吗?