Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

181
Visualizações
Forma correcta de permitir que un usuario descargue un archivo cuando se genera su URL

Situación:

  • El archivo se encuentra en AWS S3
  • El usuario presiona el botón para descargar un archivo
  • La solicitud se envía al servidor.
  • El servidor en respuesta envía la URL generada que otorga acceso al archivo
    • La URL, por supuesto, vincula a otro dominio (al cubo S3)

Solución actual:

  • En este momento, el controlador JS cambia la ubicación de la ventana a la URL recibida.
  • El archivo se descarga como debería.
  • Pero los navegadores arrojan errores como:
    • Chrome: "Recurso interpretado como documento pero transferido con aplicación de tipo MIME/octet-stream"
    • Safari: "Error al cargar el recurso: carga de marco interrumpida"

No puedo reemplazar el botón con el simple <a href="url" download> porque la URL se genera en respuesta a la solicitud del usuario y no se conoce de antemano.

Quiero que sea una experiencia de un solo clic (es decir, no quiero que el usuario haga clic en un nuevo botón con la URL recibida).


Pregunta:

  • ¿Cuál es la forma correcta de permitir que un usuario descargue un archivo cuando se genera su URL?
  • ¿Está bien cambiar la ubicación de la window.location para ese propósito?
about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

No suena bien cambiar la ubicación de la window.location para el archivo de descarga.

Si usa una etiqueta <a> , puede agregar el atributo de download

 <a href="my.pdf" download="your.pdf" >download file</a>

Si prefiere usar código, puede usar un script como este:

 var aTag = document.createElement('a'); aTag.setAttribute('download','your.pdf'); aTag.setAttribute('href','my.pdf'); aTag.click();
about 4 years ago · Santiago Trujillo Relatório

0

La forma correcta es hacer que el backend envíe el encabezado Content-Type adecuado con el tipo de archivo MIME correcto en la solicitud de descarga del enlace.

Está bien cambiar window.location o document.location.href para redirigir la página al enlace de descarga.

about 4 years ago · Santiago Trujillo Relatório

0

Este es en realidad un problema muy simple que no necesita Javascript en absoluto.

Cuando la solicitud se envía al servidor simplemente haciendo clic en un enlace para realizar la solicitud, el servidor, después de validar la solicitud, genera una URL firmada y luego responde...

 HTTP/1.1 302 Found Location: https://example-bucket.s3.amazonaws.com/... # new signed URL

El navegador sigue la redirección y obtiene el recurso.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda