繁体   English   中英

上传 CSV 文件 Flutter Web

[英]Upload CSV file Flutter Web

我正在使用 file_picker 插件在 Flutter Web 中选择 CSV 文件。 虽然我能够选择文件,但它会将文件转换为字节(Uint8List)。 有什么办法可以获得原始的 CSV 文件,或者我可以将这些字节转换为 CSV 或者我可以获得文件的路径?

代码:

 void pickCSV() async {
    FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['csv']);
    if (result != null) {
      var fileBytes = result.files.first.bytes;
      csfFileName.value = result.files.first.name;
    } else {
      // User canceled the picker
    }
  }

我知道这有点晚了,但你有几个选择,也许它也可以帮助其他人。

这两种选择都需要服务器端处理,因此您需要阅读如何执行此操作。

  1. 获取 CSV 文件的内容,将其发送到服务器,并在服务器上使用该内容创建一个新文件。 您可以使用String.fromCharCodes读取内容,在 web 之后,您的 select 文件。

  2. 将 Uint8List 转换为 base64 字符串,使用base64Encode function,将其发送到服务器,在那里进行处理。

或者,如果您使用 Firebase 存储,您可以像这样使用putData

final metaData = SettableMetadata(contentType: mimeType);
final task = await _storage.ref().child(cloudPath).putData(fileData, metaData);
/// Get the URL
await task.ref.getDownloadURL()
  • 存储 mimeType 可确保在下载后使用时正确处理文件
  • cloudPath 表示 FirebaseStorage 中的位置,如:storageDirectory/filename.extension
  • fileData 是您提供的 Uint8List

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM