reactjs: cómo descargar un archivo de texto en formato legible usando Blob en javascript, no se puede exportar en el formato ade

CorePress2023-11-30  1

Con solo hacer clic en el botón, estoy realizando la siguiente operación: se está descargando un archivo de texto, pero se está descargando como un objeto dentro de un archivo de texto, pero debe estar en formato legible. cualquier sugerencia A continuación se muestra el fragmento de código

const download = ( data) => {
    console.log('--downloadErrors-', data);
    const element = document.createElement('a');
    const file = new Blob([data], { type: 'text/plain' });
    element.href = URL.createObjectURL(file);
    element.download = 'errorDetails.txt';
    element.click();
  };

const data =[{message: ["one","two","three"]}]

download( data)



------------------------

const download = ( data) => {
    console.log('--downloadErrors-', data);
    const element = document.createElement('a');
    // remove the square brackets around data; it's already an array
    const file = new Blob(data, { type: 'text/plain' });
    element.href = URL.createObjectURL(file);
    element.download = 'errorDetails.txt';
    element.click();
  };
// See mdn page for Blob constructor for valid formats
// https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
const data =["one","two","three"].map(el => el + '\n')

download( data)
3
  • ¿Es posible imprimir cada mensaje en una nueva línea en lugar de una sola línea detrás?er descargando Chidananda M N 8 de junio de 2020 a las 13:56
  • ¿Quieres imprimir de forma bonita el objeto JSON? ¿O simplemente desea imprimir las cadenas reales en la matriz de mensajes, separadas por saltos de línea? -Abraham Labkovsky 8 de junio de 2020 a las 23:07
  • cadenas reales en la matriz de mensajes, separadas por línease rompe Chidananda M N 9 de junio de 2020 a las 3:26


------------------------

¿JSON.stringify resuelve su problema?

const download = (data) => {
  console.log('--downloadErrors-', data);
  const element = document.createElement('a');
  const file = new Blob([JSON.stringify(data)], {
    type: 'text/plain'
  });
  element.href = URL.createObjectURL(file);
  element.download = 'errorDetails.txt';
  element.click();
};

const data = [{
  message: ["one", "two", "three"]
}]

window.btn.addEventListener('click', () => {
  download(data);
});
<button id="btn">download</button>

Descargará el archivo de texto con contenido:

[{"message":["one","two","three"]}]
1
  • Sí, pero ¿es posible imprimir cada mensaje en una nueva línea en lugar de una sola línea después de la descarga? Chidananda M N 8 de junio de 2020 a las 14:04
Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare