2016-11-07 2 views
1

Я попробовал это в торт 3:Перенаправление не работает в торт 3, когда я использую команду копирования, прежде чем

$path = '/some/path/on/myserver'; 
$dir = new Folder($path, true, 0775); 
copy('https://www.domain.com/image',$path.$imgName); 
return $this->redirect('redirectPath'); 

$ this-> редирект не работает. Но если я командую командой copy, то перенаправление работает нормально. В чем проблема, или я что-то пропустил?

+0

Я думаю, что вы получаете некоторые ошибки в то время как ваша функция копирования запускается на выполнение и из-за этой ошибки, заголовок отправляется в браузер, из-за чего страница не перенаправляет. Попробуйте отладить команду копирования. Я вижу, что такое $ imgName? Эта переменная, кажется, не объявлена. Это может быть проблемой. –

ответ

0

Если какая-либо ошибка или предупреждение случилось перед тем $this->redirect() он не будет работать, он будет показывать

Заголовок уже послал ошибке

, если вы хотите, чтобы перенаправлять, то вы можете использовать

$this->response = $this->redirect(['action' => 'index']) ; 
$this->response->send() ; 
die(); 
0

Постарайтесь, чтобы это было

$this->redirect($this->referer(['action' => 'index']));

0

Благодарим за все ответы и просим не беспокоиться. Но я думаю, что нет простого решения! Причина после отправки этого экземпляра (..) заявление http будет завершено. И браузер не получит никакого ответа и будет ждать Skt. Nevermind ... ;-) Единственное решение - вызвать другое представление и оттуда запустить запрос ajax. В этом запросе ajax вы можете начать свою копию. Или, если у вас запущен механизм, запустите рабочий, чтобы сделать это.

Спасибо в любом случае.

Майкл