• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

347
Views
"Error: error de red" al intentar proporcionar una descarga en HTML5 usando el atributo 'descargar'

Resumen básico de lo que estoy tratando de hacer:

  • Tome archivos del usuario (usando el módulo de arranque de arrastrar y soltar "dropzone" para recibir archivos)
  • Modificar y hacer algo de "trabajo" en los archivos
  • Comprimir archivos juntos para un solo archivo para descargar
  • Enviar la descarga al usuario para que la descargue (ya sea automáticamente o en un enlace, como se detalla a continuación)

La línea en negrita de arriba es la que no funciona y estoy tratando de resolverlo. Aquí está el HTML y javascript relevantes para esa pieza:

 <button type="button" class="btn btn-primary" id="transform"> <span class="glyphicon glyphicon-wrench"></span> Transform Uploaded Files </button> <a id="test_dl" href="" download="user_download.zip"> Download File </a> $('#transform').click(function (e) { $.getJSON('/transform', {}, function (final_zip){ var zipfile = "file://" + final_zip.zip_filename $('a#test_dl').attr("href", zipfile) }); });

El usuario hace clic en el botón "Transformar archivos cargados", que luego actualiza el href a la ubicación del archivo zip resultante y luego puede descargar el paquete resultante haciendo clic en el HTML "Descargar archivo".

He probado esto en Chrome hasta ahora y usando la consola del desarrollador puedo ver que el href se está actualizando correctamente antes de hacer clic en el botón de descarga, pero siempre aparece el cuadro de diálogo "Error de red". Lo extraño es que cuando hago clic en "Mostrar todas las descargas" y luego hago clic en la descarga fallida, se completa con éxito.

Preguntas que espero me respondan

  • ¿Qué parece estar yendo mal aquí?
  • ¿Es esta la manera correcta de hacer esto? Todo lo que intento hacer es devolver un archivo al usuario cuando el proceso finaliza. Me preocupa que "archivo: //" no sea correcto de todos modos y me falle cuando el servidor esté realmente alejado del usuario que lo usa (actualmente es local, ya que lo estoy desarrollando)

Editar: debo agregar que el backend para esto se está ejecutando actualmente en Python's Flask

almost 3 years ago · Santiago Trujillo
2 answers
Answer question

0

Aparentemente, este es un problema de Chrome con la URL de datos demasiado larga. Todavía estoy trabajando en ello, pero aparentemente hay algunas soluciones que involucran objetos Blob.

Ver aquí: Descargar Canvas como PNG en fabric.js dando error de red

Y aquí: ¿Cómo exportar información de matriz de JavaScript a csv (en el lado del cliente)?

almost 3 years ago · Santiago Trujillo Report

0

Basado en ¿Cómo exportar información de matriz de JavaScript a csv (en el lado del cliente)? así es como he implementado una solución para este problema:

Tenga en cuenta que solo necesitaba una solución para Chrome - web, así que esto es lo que usé. Para obtener una solución completa, deberá consultar los ejemplos en la respuesta original

 $.ajax({ url: "/getData", dataType: "text", success: function(data){ $("#download").attr({ "value": "Download", "href": URL.createObjectURL(new Blob([data], { type: "application/octet-stream" })), "download": "outputFile.csv" }); } });
almost 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error