Closed3

Flutter Webでfile_pickerのpathが使えない問題

enoiuenoiu

ブラウザでは、file_pickerのpathが使えないらしい。
代わりにbytesを使う。

Q: How do I access the path on Web?
A: Paths aren't inaccessible from browsers since those provide fake paths. If you want to create a File instance to upload it somewhere, like FireStorage, you can do so with the bytes directly.
https://github.com/miguelpruivo/flutter_file_picker/wiki/FAQ

enoiuenoiu

ファイルの文字列を取得する。
元のコード

FilePickerResult? picResult = await FilePicker.platform.pickFiles(
  type: FileType.any,
);
if (picResult != null) {
  PlatformFile file = picResult.files.first;
  String s = await File(file.path ?? '').readAsString();
}
enoiuenoiu

これでいけた。

FilePickerResult? picResult = await FilePicker.platform.pickFiles(
  type: FileType.any,
  withData: true //追加
);
if (picResult != null) {
  PlatformFile file = picResult.files.first;
  String s = utf8.decode(file.bytes!); //変更
}
このスクラップは2022/03/25にクローズされました