2014-01-08 34 views
2

我试图下载文件中使用JavaScript和笨控制器我的笨web应用程序,它显示了ASCII格式的文件内容,但无法下载文件直接如何在codeigniter中下载文件?

view.php

<a href="javascript:prd_download(this)">Download</a> 

<img src="<?php echo site_url()."/../images/uploads/".$jobno."/thumb_".$prd_row->filename; ?>" alt="Loading Image..." > 

<input type="checkbox" name="img_check" id="img_check" class="img_check" image="<?php echo $prd_row->filename ?>"> 


<script type="text/javascript"> 
function prd_download(ele) 
{ 
    var selected_images = $(".img_check:checked"); 

    var job_no = $("#product_table").attr("jobno"); 

    var image_name = new Array(); 

    for(i = 0; i < selected_images.length; i++) 
    { 
     image_name[i] = $(selected_images[i]).attr('image'); 
    } 

     $.get('<?php echo site_url('project_controller/file_download') ?>', {file_name : image_name, jobno : job_no}); 
} 
</script> 

Controller.php这样

function file_download() 
    { 
     $url_para = $_GET['file_name']; 
     $job_no = $_GET['jobno']; 
     $this->load->helper('download'); 
     $data = file_get_contents(site_url().'/../images/uploads/'.$job_no."/".$url_para[0]); 
     $name = 'myphoto.jpg'; 

     force_download($name, $data); 
} 

我也通过改变路径尝试过,但它不工作...

+1

'site_url()。'/ ../images/uploads /'似乎无效。尝试从'/ images/uploads/..开始'' – Bora

+0

检查是否有任何控制台错误? – Arunu

+0

当我使用site_url()。'/ ../images/uploads /并在变量中打印这个变量值时,尽量使用'base_url()'而不是'site_url()' –

回答

1

我在JavaScript的所做的更改

<script type="text/javascript"> 
function prd_download(ele) 
{ 
    var selected_images = $(".img_check:checked"); 

    var job_no = $("#product_table").attr("jobno"); 

    var image_name = new Array(); 

    for(i = 0; i < selected_images.length; i++) 
    { 
     image_name[i] = $(selected_images[i]).attr('image'); 
    } 

     window.location.href = "<?php echo site_url('project_controller/file_download') ?>?file_name="+ image_name +"&jobno="+ job_no; 
} 
</script> 

在javascript中我直接调用控制器,导致$.get函数像对待回拨...

现在,它的工作的罚款...! :):D