2011-05-22 48 views
2

我在这个页面上有一个表格http://www.obsia.com/products/thassos_wonder_brochure/ 在提交时,我希望它开始下载文件,并且也被重定向到感谢页面。但我只能得到它下载文件或重定向或加载谢谢下载页面。Codeigniter:下载文件并重定向

这对于检查的形式和submiting功能:

function thassos_wonder_brochure() 
{ 
    $this->load->helper('form'); 
    $this->load->helper('email'); 
    $this->load->library('email'); 
    $this->load->library('form_validation'); 

    //form validation 
    $this->form_validation->set_rules('firstname', 'First Name', 'required|max_length[32]'); 
    $this->form_validation->set_rules('lastname', 'Last Name', 'required|max_length[32]'); 
    $this->form_validation->set_rules('companyemail', 'Company Email', 'required|max_length[100]|valid_email|unique'); 

    $this->load->model('brochure_model'); 
    if ($this->form_validation->run() == FALSE) 
    { 
     // redisplay user form and repopulate fields 
     $this->load->view('/tw/thassos_wonder_brochure_view'); 
    } 
    //display confirmation web page and send email 
    else 
    { 

     if($query = $this->brochure_model->addContact()) 
     { 
      redirect('/thankyou/thassos_wonder_download'); (UPDATE)  
     } 
    } 

} 

下面是代码的谢谢页面重定向到下载页面结尾:(UPDATE)

<?php $this->load->view('header_view.php'); ?> 
    <div class="prod"> 
    <?php $this->load->view('pmenu_view');?> 

<div class="product_desc" id="tw_download"> 
    <h1>Thank you for Downloading</h1> 
    <p>You have downloaded the brochure for ThassosWonder - for white stones specifically. You will also receive further information and link to the downloads in your email after you click on the confirmation link in your email.</p> 
    <?php echo br(1); ?> 
    <p>Feel free to write to us, if you are unable <?php echo anchor('contact', 'to get desired finish from your white marble or stones')?>. You can upload a picture to get a thorough analysis from our Research Director.</p> 
    <br /> 

</div> 
    </div> 
    <?php $this->load->view('footer_view');?> 
<?php redirect('download/thassos_wonder_brochure'); ?> 

这是我在下载页面上使用的代码。我如何下载该文件并将其重定向到感谢页面。

<?php 
$this->load->helper('download'); 
$name = 'ThassosWonder.pdf'; 
$data = file_get_contents("./downloads/brochures/Thassos_Wonder_Obsia.pdf"); // Read the file's contents - cannot use relative path. It will try to call the file from same directory (controller) as this file. In order for it get the contents from the root folder put a . in front of the relative path// 
force_download($name, $data); 
?> 

任何帮助将不胜感激。

+0

我已经更新了答案... – Repox 2011-05-25 07:58:36

回答

3

反其道而行 - 重定向到“谢谢”页面,并立即重定向到“强制下载”页面。这将开始下载,但将用户留在“谢谢”页面上。

UPDATE: 尝试改变

<?php redirect('download/thassos_wonder_brochure'); ?> 

<?php redirect('download/thassos_wonder_brochure', 'refresh'); ?> 

代替。

+0

这当然是做到这一点的自然方法。 – 2011-05-23 05:11:10

+0

如果我这样做'如果($查询= $这个 - > brochure_model->的addContact()) \t \t \t { \t \t \t \t重定向( '/三江源/下载'); \t \t \t \t重定向('/ download/thassos_wonder_brochure'); \t \t \t \t \t \t \t} \t'然后将其装入感谢您网页,但没有下载。如果我在所有代码的最后添加重定向以表示感谢页面,则它只会强制下载,但不会将其重定向到感谢页面。 – strangeloops 2011-05-23 19:46:39

+0

你不能在同一页面重定向。您必须重定向到“谢谢”页面并让该页面重定向到下载页面。 – Repox 2011-05-24 06:51:38