wal_toor
asked on
force download in jquery loaded div [ codeigniter ]
Hello all,
I have this codeigniter question.
I have created a force download link and this works perfectly. It is a controller with the method 'download' This gets some data and load the view that actually forces the download.
If I load this view (with jquery) into a div the raw data of the file is displayed, and there is no download.
Does anybody know why this is? I need to load it with jquery, do some other tasks and then force the download.
Hope someone can help me.
controller:
view:
I have this codeigniter question.
I have created a force download link and this works perfectly. It is a controller with the method 'download' This gets some data and load the view that actually forces the download.
If I load this view (with jquery) into a div the raw data of the file is displayed, and there is no download.
Does anybody know why this is? I need to load it with jquery, do some other tasks and then force the download.
Hope someone can help me.
controller:
class Kleurplaten extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('kleurplaten_model');
}
public function download_kleurplaat($id){
// load data
$content_data['kleurplaat'] = $this->kleurplaten_model->get_single_coloring_page($id);
if (empty($content_data['kleurplaat'])){
show_404();
}
$this->load->view('pages/kleurplaten_download', $content_data);
}
}
view:
$this->load->helper('download');
// do some fancy stuff here...
$data = file_get_contents(base_url().'images_upload/'.$kleurplaat['colpic_asset_location']); // Read the file's contents
$name = 'myphoto.jpg';
force_download($name, $data);
ASKER
Hello feri,
I am using jquery to load the data into a div:
It works, but de loaded view (where the download is initiated) shows only raw image data, no download.
But when I addres the url like www.site.nl/kleurplaten/download_kleurplaat/9 is works perfect
kleurplaten - controller
download_kleurplaat - method
9 - argument (id)
greetz,
walter
I am using jquery to load the data into a div:
$(".kleurplaat_downloadlink").click(function(event){
event.preventDefault();
var content_id = $(this).attr('rel'); // id of content is a rel attribute
var content_holder = $(this).parent().find(".kleurplaat_download");
var content_to_load = siteroot+'/kleurplaten/download/'+content_id;
// load and process
content_holder.load(content_to_load, function(response, status, xhr) {
if (status == "error") {
//error, do stuff
}else if(status == "success"){
//succes, do stuff
}
});
});
It works, but de loaded view (where the download is initiated) shows only raw image data, no download.
But when I addres the url like www.site.nl/kleurplaten/download_kleurplaat/9 is works perfect
kleurplaten - controller
download_kleurplaat - method
9 - argument (id)
greetz,
walter
Hm, try to replace the call of content_holder.load(...) (the whole block) with this:
location.href = content_to_load;
location.href = content_to_load;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi Frisoft, Ahaa... this seemed to be the issue. Thanks for pointing this to me. I have found another solution to get this working.
what are you exactly (and how) loading into a div? Can you post a code related to this too?
Which file is displayed in the div? The view? Or the image?
Thanks,
Feri