Функция redirect()
Codeigniter exit
s после отправки заголовка местоположения.Итак, вызовите функцию перед перенаправлением.
$this->foo2();
redirect('competitor/main', 'refresh');
Примечание: здесь не нужно site_url()
, функция перенаправления добавит его, если вы используете относительный URL.
Я неконечно, что делает foo2()
, но это выглядит немного сомнительно ...
Если по какой-то причине вы не можете этого сделать, отправьте заголовок с собственным PHP.
header("Refresh:0;url=".site_url('competitor/main'));
$this->foo2();
exit;
Когда пользователь загружает файл на site_url('competitor/main')
, он переходит к функции foo()
, затем сразу же перенаправляется обратно на главную страницу конкурента и foo2()
запускается в фоновом режиме.
Вероятно, это не тот способ обработки загрузок, поскольку у вас не будет возможности справляться с ошибками.Есть несколько других способов, которые я могу предложить:
- Загрузить на другой URL, обработать файл, а затем перенаправить на страницу по вашему выбору (с сообщением о статусе, если хотите)
- Публикуйте форму для отправки на
<iframe>
, которая будет поддерживать страницу в ее текущем состоянии. - Дополнительно: используйте javascript для загрузки файла с XMLHttpRequest / AJAX.Существует число из скриптов доступных для это .