forzar descarg de archivo codeigniter+extjs
Hola ,estoy intentando hacer que desde un dataview al hacer click en un menu para descargar un archivo,forzar la descarga de este, en el controlador utilizo la funcion de codeigniter "force_download", el problema es que al no poder usar parametros get la duda es:
puedo forzar una descarga por ajax? lo he intentado pero no he podido.
Espero que alguien me pueda echar una mano <!-- s;) --><!-- s;) -->
utiliza un link sencillito,
<a href="descargar/file.zip">Descargar</a>si lo quieres hacer desde javascript:
document.location = 'descargar/file.zip';al ser un archivo descargable no te debería llevar al link, sino que solamente debería mostrar la ventanita de guardar del explorador. saludos y suerte
Gracias por responder Stock <!-- s;) --><!-- s;) -->, ya habia pensado en eso pero necesitaba que por ejemplo, si era una imagen se lanzase su descarga.Al final lo he conseguido de una manera no muy buena pero que funciona <!-- s;) --><!-- s;) -->, lo que he hecho es que primero al hacer el ajax escriba un fichero con el nombre y la ruta y luego he hecho un redirect en javascript con direccion a otra funcion del controlador que lee el fichero leyendo la ruta del archivo que luego abre y lanza su descarga con "force_download" asi me aseguro de que todos lo ficheros son lanzados <!-- s;) --><!-- s;) -->.
Puaf!! menuda explicacion, creo que no me he entendido ni yo <!-- s:P --><!-- s:P --> , mejor si alguien quiere que ponga el codigo que lo postee y lo pongo <!-- s;) --><!-- s;) -->
jejejejeje... bueno, definitivamente tienes que modificar las cabeceras del servidor para que en lugar de desplegar la imagen la intente descargar.
saludos
y eso como sería?? <!-- s;) --><!-- s;) -->.Quiero que al hacer click en un item de un menu, este tenga el enlace de la imagen y esta a su vez se descargue directamente.
las cabeceras las tendrías que modificar algo así:
// Le indicas que descargarás, en este caso una imagen, puede seer cualquier otra cosa header('Content-type: image/jpeg'); // Con esto aparece el dialogo de guardar y le asigna el nombre "nombre-de-la-imagen.jpg" header('Content-Disposition: attachment; filename="nombre-de-la-imagen.jpg"'); //envías la imagen que necesites echo file_get_contents('images/imagen-descarga.jpg');Luego en el javascript solamente haces algo así:
btn.on('click',function(){ document.location='descargas/descargarImg' })eso debería funcionar, prueba y nos cuentas. mas info, aqui: <!-- m -->http://php.net/manual/en/function.header.php<!-- m --> saludos
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.