我想用这个函数上传图片到我的supabase存储,我用riverpod_flutter进行状态管理,下面是我的代码:
class ServicesRepository{
Future<String> uploadServicesImageApi(String path, File image) async {
final response = await Supabase.instance.client.storage
.from('services')
.upload(path, image);
return response;
}
}
但我认为是错误的错误:无法将参数类型“文件/1/”赋给参数类型“文件/2/”. lib/.../存储库/services_repository.dart:38 -“文件/1/”来自“dart:io”。-“文件/2/”来自“软件包:universal_io/src/io/file.dart”('../../../AppData/Local/Pub/Cache/hosted/pub.dev/universal_io-2.0.4/
尽管如此,我还是将导入从import 'dart:io'
更改为import 'dart:io' as i
,并将代码更改为
Future<String> uploadServicesImageApi(String path, i.File image) async {
final response = await Supabase.instance.client.storage
.from('services')
.upload(path, image as i.File);
return response;
}
我得到了同样的错误,有没有无论如何修复它,顺便说一句,我正在使用flutter web。
1条答案
按热度按时间oxf4rvwz1#
首先,您不能在Web上使用
dart:io
,因为它是由Dart VM提供的纯本地库,因此如果您尚未针对Web目标进行测试,这将给您带来问题。第二,您看到的错误指出您试图使用
dart:io
中的File
,而实际上应该使用package:universal_io
中的File
。dart:io
导入(无论如何,您都需要这样做才能指向Web)dart:io
放在库前缀后面,就像在第二个示例中那样,但要将i.File
替换为File
dart:io
导入中隐藏File
:x1米11米1x