使用 Flutter 将图像文件上传到 Supabase 存储

Issue uploading image file to Supabase storage with Flutter

我在将图像从我的 Flutter 应用程序上传到 Supabase 存储时遇到问题。

上传基本上没问题,但每次只上传一张空白图片。

这是我的代码。仅供参考,我正在使用 flutter image_picker 包来 select 图像。

  File file = File(image.path);
  print('file $file'); // File: '/mydirectory/Library/Developer/CoreSimulator/Devices/98A6C1E0-14B0-481B-82CF-49803A0EB015/data/Containers/Data/Application/E07B33F6-7B5C-4EA0-AF78-84FF5A7E5BAD/tmp/image_picker_556716D5-69B1-485E-A7EE-39502A0F73C0-63547-0000EA70E7438D43.jpg'

  // Upload file to bucket "public"
  file.writeAsStringSync('File content');
  final storageResponse =
      await supabase.storage.from('public').upload(image.name, file);
  print('upload response : ${storageResponse.data}');

  // Get download url
  final urlResponse =
      await supabase.storage.from('public').createSignedUrl(image.name, 60);
  print('download url : ${urlResponse.data}');

storageResponse.data 和 urlResponse.data 都按预期输出(即从存储中获取响应)。

如前所述,它正在上传,但似乎上传的文件类型有误。我无法在存储中手动下载图像,也无法使用 url 查看它,我猜是因为它已损坏。还说图像大小为12字节。

  file.writeAsStringSync('File content');

看起来你正在用 12 字节的字符串覆盖文件