2010-10-21 30 views
5

rápida de explicar, pero no puedo conseguir que funcione:CodeIgniter - force_download() no hay salida

En este código simple, la función force_download simplemente no tiene ninguna salida.

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

Aquí apenas consigo una pantalla blanca, pero el contenido del archivo se muestran (bien sabes, el contenido Codificada extraña :) creo que es bastante simple, sólo quiero el archivo descargado sin ningún otro efecto , ¿Estoy haciendo algo mal?

+0

nos muestras la función force_download? Si espera que nosotros lo ayudemos, debe mostrarnos todas las partes del problema. De lo contrario, tenemos que pedírselo, y eso nos hace menos dispuestos a ayudar. – treeface

+0

Podría Treeface, pero es un ayudante del Codeigniter System, no se supone que esté fallando, la función misma ha sido probada a largo plazo. De todos modos, he resuelto el problema, fue una mala configuración de mi servidor local, que no entendía los encabezados que escribe la función. –

+0

Entonces -> Problema resuelto. –

Respuesta

0

eliminar ese echo $data."/".$filename; Debe ser así

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

Creo que el eco solo está allí para depuración? No veo por qué más alguien lo pondría allí;) –

+0

sí Tilman, el eco está ahí solo para probar que estaba obteniendo el contenido del archivo correctamente. –

+2

force_download funciona bien en la PC, pero no funciona en el dispositivo Android – Guru

3

Sólo una nota para cualquier otra persona que pueda estar teniendo este problema: Asegúrese de que tiene una extensión de archivo en el nombre de archivo que proporciona para el primer argumento a force_download() .

CodeIgniter utiliza esto para establecer el tipo MIME, y parece que no funciona sin él.

+0

Esto funcionó para mí. –

+0

Sí ... Extensión de archivo debe agregarse funciona bien ... – mrsrinivas

0

No debe llamar a la función después de force_download(), simplemente elimine la última línea.

2

Este trabajará con usted

$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` 
+0

me faltaba incluir el ayudante –

+0

gracias hermano. eres increible. me ahorras mucho tiempo y estrés ... –