如何在 Flutter 中将 XFile 转换为文件

Posted

技术标签:

【中文标题】如何在 Flutter 中将 XFile 转换为文件【英文标题】:How to convert a XFile to File in Flutter 【发布时间】:2021-05-17 00:30:57 【问题描述】:

我想将 XFile 转换为 File 以将文件上传到 Firebase,因为 Firebase 仅以文件格式上传。 代码如下:

XFile videofile;
videofile = file;
await FirebaseStorage.instance.ref(imageRef).putFile(videoFile);

给出一个错误提示 XFile 无法上传到 Firebase

使用来自XFile package 的 XFile 包会给出另一个错误提示:

名称“XFile”在库“package:cross_file/src/types/interface.dart”和“package:xfile/src/xfile_core.dart”中定义(通过package:xfile/xfile.dart) '。 尝试对其中一个导入指令使用“作为前缀”,或者对除一个导入之外的所有指令隐藏名称。

文件中的其他依赖项是

import 'dart:async';
import 'dart:io';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';

【问题讨论】:

【参考方案1】:
File convertToFile(XFile xFile) => File(xFile.path);

【讨论】:

【参考方案2】:

您好,这是今天(2021 年 8 月 26 日)更新库的人的答案。

XFile videofile;
videofile = file;
await FirebaseStorage.instance.ref(imageRef).putFile(File(videoFile!path));

如果有帮助请告知,谢谢。

【讨论】:

【参考方案3】:

要将您的 Xfile 图像转换为文件图像以在小部件内显示图像,您可以使用此代码

X 文件?选定的图像;

Image.file(File(selectedImage!.path))

【讨论】:

【参考方案4】:
File file = File(videofile.path);

.toFile() 可能不起作用,因为 XFile 插件可能与其他插件冲突

【讨论】:

以防万一其他人遇到这种情况。我不小心从 'dart:html' 导入,应该从 'dart:io' 导入。【参考方案5】:
final file = videofile.toFile();

您可以在插件的文档here 中找到更多示例。

【讨论】:

以上是关于如何在 Flutter 中将 XFile 转换为文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中将图像转换为文件?

如何在 Flutter 中将 TextEditingController 转换为 String?

如何在 Flutter 中将 GIF 转换为 mp4 视频?

如何在 Flutter 中将 JSON 转换为对象? [关闭]

如何在 Dart/Flutter 中将数字从 20,95 转换为 20.95?

使用 MultipartFile 将 XFile 图像发送到 API - Flutter