Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

417
Vistas
Descarga remota con JavaScript con un nombre de archivo personalizado

Tengo una página en mi sitio web que tiene un botón que redirige a una URL que descarga el código fuente del repositorio git para ese sitio web. Aquí está el HTML que tengo hasta ahora:

 <!DOCTYPE html> <html> <body> <p>Would you like to download this website's source code?</p> <button type="button" onclick="window.location.href = 'https://codeload.github.com/SteepAtticStairs/steepatticstairs.github.io/zip/refs/heads/main'">Yes</button> <button type="button" onclick="window.location.href = '/index.html'">No</button> </body> </html>

Sin embargo, esto descarga un archivo con el nombre steepatticstairs.github.io-main.zip . Tengo un script bash que escribí:

 #!/bin/bash url=https://codeload.github.com/SteepAtticStairs/steepatticstairs.github.io/zip/refs/heads/main now="$(date '+%m.%d.%Y')" cd ~/Downloads wget -O "steepatticstairs.github.io_${now}.zip" $url

Lo que descarga el archivo con un nombre como steepatticstairs.github.io_03.09.2022.zip . Este es el nombre que quiero, con la fecha al final.

¿Hay alguna manera de que pueda replicar esto en JavaScript, tal vez usando jQuery, donde podría hacer clic en el botón Yes y descargaría el archivo desde la URL, pero cambiaría el nombre antes de descargarlo? Si alguien puede mostrarme rápidamente cómo obtener la fecha en el nombre del archivo en JavaScript, sería increíble, pero podría resolverlo. Solo quiero saber cómo cambiar el nombre del archivo antes de descargarlo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

debido a que el ajax entre dominios será bloqueado por la política CORS, necesita que el servidor envíe la solicitud por proxy y modifique la disposición de contenido en el encabezado de respuesta, por ejemplo: Content-Disposition:attachment;filename= ${filename}.zip

puedes usar ajax para descargar el archivo:

 const xhr = new XMLHttpRequest(); xhr.responseType = "blob"; xhr.addEventListener('load', () => { if (xhr.status === 200) { const a = document.createElement('a'); const url = window.URL.createObjectURL(xhr.response); a.href = url; a.download = '${filename}.zip'; a.click() window.URL.revokeObjectURL(url); } }); // if need progress bar can listen progress event // xhr.addEventListener('progress', e => console.log(e.loaded/e.total)) xhr.open('GET', '${url}') xhr.send()
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda