0

у меня есть коды, как этотСпросите, как использовать перенаправление без ограничений?

function download(){ 
      $id = $this->uri->segment(3); 
      $dat = $this->mikland->gidiklanfoto($id); 
      foreach ($dat as $item){ 
      $name = $item->foto; 
      $data = file_get_contents(base_url()."/uploads/".$name); // filenya 
      force_download($name,$data); 
    } 
      redirect('cikland/viewiklan/'.$id); 
    } 

когда функция выполняющиеся, перенаправление не может быть запущена., кто-нибудь может помочь ?? Я думаю, что это простая вещь, но я не знаю трюк., Спасибо до

+1

Я думаю, вам не нужно перенаправлять функцию загрузки. Просто переадресовывайте в следующую строку после вызова функции загрузки. 'Redirect ('cikland/viewiklan /'.$ id,' refresh ');' –

+0

У меня есть движение код перенаправления везде в функции скачать., но он не работал ,, Я попытался поместить код после '$ id = $ this-> uri-> segment (3);' запуск перенаправления, но загрузка не выполняется – user3004429

ответ

0

Вам нужен хардвер URL-адреса.

$this->load->helper('url'); 

после

redirect("cikland/viewiklan/$id", 'refresh'); 

или

redirect("cikland/viewiklan/$id", 'location', 301); 

Шрифт: http://ellislab.com/codeigniter%20/user-guide/helpers/url_helper.html

+0

у меня есть установить '$ this-> load-> helper (' url '); 'в файле автозагрузки я попытался использовать код' refresh ', но он не работает .. У меня есть код перенаправления везде в функции скачать., но он не работал ,, Я попытался поместить код после '$ id = $ this-> uri-> segment (3);' redirect run, но загрузка не запускается – user3004429

1

В конце force_download() есть exit() заявление, так что нет кода после вынужденной загрузки будет работать ,

И вы пытаетесь одновременно загружать несколько файлов - используя какой-то тип multipart mime, который может работать или не работать, но не в данном случае, потому что CI force_download(), похоже, не поддерживает это.

Альтернативой этому будет создание временного архивного файла, который содержит все файлы для загрузки; пожалуйста, ознакомьтесь с официальной документацией на compression and archives.

Если вы хотите, чтобы послать заголовок перенаправления вместе с файлом, вы должны были бы сделать это следующим образом:

function download(){ 

    // add this somewhere befor the download 
    header('Location: '.site_url('cikland/viewiklan/'.$id)); 

    $id = $this->uri->segment(3); 
    $dat = $this->mikland->gidiklanfoto($id); 

    // only first item is downloaded 
    foreach ($dat as $item) 
    { 
     $name = $item->foto; 
     $data = file_get_contents(base_url()."/uploads/".$name); // filenya 
     force_download($name,$data); 
    } 
} 

Но вопрос останется, как браузеры будут иметь дело с перенаправлением и content: скорее всего, вы получите только перенаправление.

+0

браузер не может обрабатывать header()., он делает длинный URL-адрес в адресной строке. У меня есть код перенаправления везде в функции загрузки., но он не работал ,, Я попытался поместите код после '$ id = $ this-> uri-> segment (3);' запуск переадресации, но загрузка не выполняется – user3004429

+0

ah извините, перенаправление CI добавило бы uri с базой site_url() - я скорректировал код соответственно. Что касается переадресации и загрузки, как упоминалось, комбинация, вероятно, не сработает - как это указано (или, по крайней мере, для браузеров).Вы можете попробовать что-то с javascript, чтобы обойти это – Filou

0

redirect() метод перенаправляет URL-адрес. Вы должны передать ему полный URL-адрес (поскольку он использует функцию header(), которая в соответствии с RFC для HTTP1.1 требует полного URL-адреса.

так что вам нужно жестко закодировать полный URL-адрес, как в данном примере - redirect('http://www.yoursite.com/cikland/viewiklan/'.$id);

+0

Нет, не совсем правильно. Если 'redirect ($ uri)' не передается строка, начинающаяся с http или https, она изменяет $ uri на site_url ($ uri). – Filou

+0

У меня есть код переадресации везде в функции загрузки., Но он не работал ,, Я попытался поместить код после '$ id = $ this-> uri-> segment (3);' запуск переадресации, но скачать не бег – user3004429