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

Flutter_downloader保存含特殊字符文件名问题求助

解决FlutterDownloader保存文件名被修改的问题

FlutterDownloader默认会自动过滤文件名中的空格、特殊字符及非ASCII字符(比如示例里的“ông”“@”),将其替换为下划线,导致原文件名丢失。要保留原文件名,可按以下方式处理:

  • 绕过FlutterDownloader的文件名自动清理逻辑,手动指定完整的文件保存路径,用saveFilePath参数替代savedDir和fileName的组合。
  • 先确认保存目录存在,再拼接包含原文件名的完整路径,直接传入saveFilePath。

修改后的代码示例:

import 'package:path/path.dart' as path;

// 确保保存目录存在(不存在则创建)
await Directory(localPath).create(recursive: true);

// 拼接带原文件名的完整路径
final fullFilePath = path.join(localPath, "abc ông @.text");

await FlutterDownloader.enqueue(
  url: url,
  saveFilePath: fullFilePath, // 直接传入完整路径
  saveInPublicStorage: true,
);

注意事项:

  • 要确保目标目录有写入权限,Android旧版本需申请WRITE_EXTERNAL_STORAGE权限,iOS需配置对应文件访问权限或使用合规的公共存储路径。
  • 不同操作系统对文件名允许的字符有差异,需确认原文件名符合目标平台的命名规则,避免保存失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:53:10