You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Web应用中如何实现文本文件的创建与下载?

解决Flutter Web中创建并下载文本文件的问题

嘿,作为Flutter Web新手碰到这个需求太正常了,我来帮你搞定把文本内容下载成txt文件的功能!

在Flutter Web环境下,我们需要借助浏览器的API来实现文件下载,具体要用到dart:html包里的相关类。下面是修改后的完整代码,直接就能用:

首先导入必要的包:

import 'dart:convert';
import 'dart:html' as html;
import 'package:flutter/foundation.dart'; // 用来判断是否是Web环境

然后实现你的getData函数和下载逻辑:

void getData() {
  List<int> bytes = utf8.encode('this is the text file');
  print(bytes);
  
  // 只在Web环境执行下载逻辑
  if (kIsWeb) {
    _downloadFile(bytes, 'my_text_file.txt');
  }
}

void _downloadFile(List<int> bytes, String fileName) {
  // 将字节数据转为浏览器能识别的Blob对象
  final blob = html.Blob([bytes]);
  // 创建Blob的临时下载URL
  final downloadUrl = html.Url.createObjectUrlFromBlob(blob);
  
  // 创建一个隐藏的<a>标签,用来触发下载
  final downloadAnchor = html.AnchorElement(href: downloadUrl)
    ..setAttribute('download', fileName) // 指定下载的文件名
    ..style.display = 'none' // 隐藏标签
    ..click(); // 模拟点击触发下载
  
  // 下载完成后释放临时URL,避免内存泄漏
  html.Url.revokeObjectUrl(downloadUrl);
}

关键步骤解释:

这样你触发getData函数的时候,浏览器就会自动下载名为my_text_file.txt的文件啦,里面就是你指定的文本内容~

内容的提问来源于stack exchange,提问作者Chinnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 08:57:35