【发布时间】:2019-04-01 20:14:41
【问题描述】:
我想将视频文件上传到我的云存储,但我想在上传前检查视频文件的大小。如何做到这一点
【问题讨论】:
-
请将此标记为已接受答案:stackoverflow.com/a/66473018/8164116
标签: dart flutter firebase-storage
我想将视频文件上传到我的云存储,但我想在上传前检查视频文件的大小。如何做到这一点
【问题讨论】:
标签: dart flutter firebase-storage
如果你有文件的路径,可以使用dart:io
var file = File('the_path_to_the_video.mp4');
你可以使用:
print(file.lengthSync());
或
print (await file.length());
注意:返回的大小为bytes。
【讨论】:
formatBytes(await File(image.path).lengthSync(), 2)
// 定义函数
getFileSize(String filepath, int decimals) async {
var file = File(filepath);
int bytes = await file.length();
if (bytes <= 0) return "0 B";
const suffixes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
var i = (log(bytes) / log(1024)).floor();
return ((bytes / pow(1024, i)).toStringAsFixed(decimals)) + ' ' + suffixes[i];
}
// 如何调用函数
print(getFileSize('file-path-will-be-here', 1));
// 输出将是如下字符串:
97.5 KB
这对我有用。我希望,这也会对你有所帮助。非常感谢您提出问题。
【讨论】:
这对我有用。
final file = File('pickedVid.mp4');
int sizeInBytes = file.lengthSync();
double sizeInMb = sizeInBytes / (1024 * 1024);
if (sizeInMb > 10){
// This file is Longer the
}
【讨论】:
如果您使用的是最新的 ImagePicker 和 xFile 类型,那么,
final XFile? photo = await _picker.pickImage(source: ImageSource.camera);
print(File(photo.path).lengthSync());
将以字节为单位返回文件大小。
【讨论】: