CodeIgniter - force_download() no output

2019-03-16 14:21发布

问题:

Fast to explain, but I can't get it to work:

In this simple code, the function force_download simply doesn't make any output.

$this->load->helper('download');
$data = file_get_contents("modulos/".$filename); // Read the file's contents
force_download($filename, $data);
echo $data."/".$filename;

Here I just get a white screen, but the file content is show (well you know, the strange codified content :) I think it is simple enough, I just want the file downloaded with no other effect, am I doing something wrong?

回答1:

Just a note to anyone else who may be having this problem: Make sure you have a file extension on the filename you supply for the first argument to force_download().

CodeIgniter uses this to set the MIME type, and it doesn't seem to work without.



回答2:

This will work with you

$this->load->helper('download');
$path = file_get_contents(base_url()."modulos/".$filename); // get file name
$name = "sample_file.pdf"; // new name for your file
force_download($name, $path); // start download`


回答3:

Remove that echo $data."/".$filename; It should be like this

$this->load->helper('download');
$data = file_get_contents("modulos/".$filename); // Read the file's contents
force_download($filename, $data); 


回答4:

You should not call function after force_download(), Just remove the last line.



回答5:

remove base_url() and do like this

$path= file_get_contents('./uploads/abc.jpg);