Seré breve. El siguiente es el método que estoy usando para convertir el texto dentro de una etiqueta de área de texto en un archivo .txt:
<textarea id="inputTextToSave"></textarea> <button onclick="saveTextAsFile()">SAVE</button> <textarea id="string"></textarea> <script> function saveTextAsFile() { var textToWrite = document.getElementById("inputTextToSave").value; var textFileAsBlob = new Blob([textToWrite], {type:'text/plain;charset=utf-8'}); document.getElementById("string").innerHTML= textFileAsBlob.txt; } </script>El problema es que cada vez que ejecuto la función e intento insertar el contenido del blob del área de texto 'inputTextToSave' en el área de texto 'cadena', no muestra el texto. Esencialmente, estoy tratando de orientar los contenidos dentro del blob para luego poder cargarlos en una base de datos y esa base de datos solo acepta archivos .txt. Cualquier ayuda sería apreciada. ¡Gracias!
Intente usar await textFileAsBlob.text() para convertir blob en cadena (no olvide declarar su función como async para usar el método await , porque el método Blob.text() devuelve Promise , no el resultado real).
Ejemplo:
import { Blob } from 'buffer'; const textFileAsBlob = new Blob(['xxxx'], {type:'text/plain;charset=utf-8'}); console.log(`textFileAsBlob = ${textFileAsBlob}`) const stringFromBlob = await textFileAsBlob.text() console.log(`stringFromBlob = ${stringFromBlob}`)Documentos: https://developer.mozilla.org/en-US/docs/Web/API/Blob/text
Fragmento de código basado en su código:
async function saveTextAsFile() { const textToWrite = document.getElementById("inputTextToSave").value; const textFileAsBlob = new Blob([textToWrite], {type:'text/plain;charset=utf-8'}); document.getElementById("string").innerHTML= await textFileAsBlob.text(); } <textarea id="inputTextToSave"></textarea> <button onclick="saveTextAsFile()">SAVE</button> <textarea id="string"></textarea>