【发布时间】:2021-10-19 16:13:55
【问题描述】:
Compressed 显示为 null
File compressed = await FlutterImageCompress.compressAndGetFile(
img.path,
img.path.split('/').last,
quality: 80,
);
ref = firebase_storage.FirebaseStorage.instance
.ref()
.child('postimages/${Path.basename(img.path)}');
await ref.putFile(compressed);
这就是我得到的错误
E/flutter (12851): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理异常:
NoSuchMethodError:在 null 上调用了 getter 'absolute'。
E/flutter (12851):接收器:null
E/flutter (12851):尝试调用:absolute
E/flutter (12851): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
E/flutter (12851): #1 Reference.putFile
包:firebase_storage/src/reference.dart:126
E/颤振 (12851): #2 _AddImageState.uploadFile
包:softclaw/…/addpost/addimage.dart:228
E/颤振 (12851):
E/颤动(12851):
【问题讨论】:
-
您必须传递完整路径而不是
img.path.split('/').last- 将写入压缩文件的完整路径 -
那是目标路径,如果我传递完整路径,它会说图像路径不能与图像路径相同,如果我传递另一个路径,那么它会询问图像名称;所以我传递了文件名而不是路径。
-
FlutterImageCompress.compressAndGetFile("/data/user/0/com.softclaw.in/cache/image_picker8531589453832627480.jpg", "/data/user/0/com.softclaw.in/cache/image_picker8531589453832627480.webp", quality: 80, format: CompressFormat.webp);- 有什么相同之处?输入为jpg输出为webp -
final path = '/data/user/0/com.softclaw.in/cache/image_picker8531589453832627480.jpg'); final imageUri = Uri.parse(path); final outputUri = imageUri.resolve('output.webp'); print(imageUri.toFilePath()); print(outputUri.toFilePath()); -
@pskink ????您是否有机会在答案中写下最终结果,以便我们投票并且 OP 可以接受?
标签: firebase flutter firebase-storage