Saltar al contenido

Para leer y escribir archivos en Flutter Web

Adriana, parte de este gran equipo, nos ha hecho el favor de crear este tutorial ya que controla a la perfección este tema.

Solución:

en los documentos de dart se ha explicado… dart:io no está disponible para compilación web… significa que no puede acceder directamente a los archivos del sistema en flutter web. la compilación fallará … debe eliminar el código para ejecutarlo

Esto es una cuestión de seguridad. aleteo

espero que tengas tu respuesta

La respuesta aceptada no es del todo correcta. Sí, dart:io no está disponible en la web, pero aún es posible leer archivos. Puede seleccionar un archivo a través del selector de archivos del sistema y leerlo después. Una opción sencilla para “escribir” un archivo es enviar al usuario una descarga automática.

Leer:
Utilice esta biblioteca para seleccionar un archivo: pub.dev/packages/file_picker (guía de migración web)

import 'dart:html' as webFile;
import 'package:file_picker_web/file_picker_web.dart' as webPicker;

if (kIsWeb) 
   final webFile.File file = await webPicker.FilePicker.getFile(
      allowedExtensions: ['pd'],
      type: FileType.custom,
   );
  
   final reader = webFile.FileReader();
   reader.readAsText(file);

   await reader.onLoad.first;

   String data = reader.result;

Escribe (también conocido como descarga):

import 'dart:html' as webFile;

if (kIsWeb) 
   var blob = webFile.Blob(["data"], 'text/plain', 'native');

   var anchorElement = webFile.AnchorElement(
      href: webFile.Url.createObjectUrlFromBlob(blob).toString(),
   )..setAttribute("download", "data.txt")..click();

Creé un paquete específicamente para esto antes de que Flutter web existiera. https://pub.dev/packages/async_resource

Considera las cosas como un recurso de red (generalmente a través de HTTP) o como un recurso local, como un archivo, almacenamiento local, caché del trabajador del servicio o preferencias compartidas.

No es lo más fácil del mundo, pero funciona.

Tienes la opción de favorecer nuestra misión añadiendo un comentario y puntuándolo te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *