Saltar al contenido

Descargar archivo en ajax success node.js

Solución:

Básicamente, existen dos formas populares de descargar un archivo.

1. Establecer window.location

Configuración window.location a la URL de descarga se descargará el archivo.

window.location = '/path/to/download?arg=1';

Una versión ligeramente diferente de esto es abrir una nueva pestaña con la ruta de descarga.

window.open("https://foroayuda.es/path/to/download", '_self');

2. Haga clic en el enlace virtual

Con HTML5, puede especificar el download atributo de un enlace. Al hacer clic en el enlace (incluso mediante programación), se activará la descarga de la URL. Los enlaces ni siquiera necesitan ser parte del DOM, puede crearlos dinámicamente.

var link = document.createElement('a');
link.href="https://foroayuda.es/path/to/download";
link.download = 'local_filename.csv';
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
link.dispatchEvent(e);

Esto no es compatible con todos los navegadores, por lo que incluso si desea utilizar este método, tendrá que dejar de admitir algunos navegadores o recurrir al primer método.

Afortunadamente, esta excelente respuesta hace referencia a un pequeño js biblioteca que ya hace todo esto: http://pixelscommander.com/polygon/downloadjs/#.VrGw3vkrKHv

downloadFile("https://foroayuda.es/path/to/download");

Descarga en 2 pasos

Otra convención que verá a menudo es una descarga de dos pasos, donde la información se envía al servidor en una URL conocida, y el servidor devuelve una URL o identificación generada que se puede usar para descargar el archivo.

Esto puede ser útil si desea que la URL sea algo que se pueda compartir, o si tiene que pasar muchos parámetros al generador de descargas o simplemente desea hacerlo a través de un POST solicitud.

$.ajax({
    type: 'POST',
    url: '/download/path/generator',
    data: {'arg': 1, 'params': 'foo'},
    success: function(data, textStatus, request) {
        var download_id = data['id'];
        // Could also use the link-click method.
        window.location = '/path/to/download?id=' + download_id;
    }
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *