firebase 如何在Flutter中将XFile转换为File

g2ieeal7  于 2023-01-05  发布在  Flutter
关注(0)|答案(7)|浏览(260)

由于Firebase只能以文件格式上传,因此我想将XFile转换为File以将文件上传到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(via package:xfile/xfile.dart)”中定义的。请尝试将“as prefix”用于某个导入指令,或对所有导入隐藏该名称,只保留一个导入。*

文件中的其他依赖项包括

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';
9rbhqvlz

9rbhqvlz1#

File file = File(videofile.path);

.toFile()可能无法工作,因为XFile插件可能与其他插件冲突

ffscu2ro

ffscu2ro2#

要将Xfile图像转换为File图像以在小部件内部显示图像,可以用途:

XFile? selectedImage;

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

webghufk3#

对于任何面临xFile.path返回的网络类型路径(不能用于创建文件)问题的人,您可以改用FireStore putData函数并以字节形式读入xFile。

FirebaseStorage store = FirebaseStorage.instance;
final _picker = ImagePicker();
XFile? pickedImage = await _picker.pickImage(source: ImageSource.gallery);
    if (pickedImage != null) {
      TaskSnapshot task = await store.ref(imageRef).putData(await pickedImage.readAsBytes());
    }

在处理/加工之前,在必要的地方压缩图像总是一个好主意。

eagi6jfj

eagi6jfj4#

final file = videofile.toFile();

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

2exbekwf

2exbekwf5#

File convertToFile(XFile xFile) => File(xFile.path);
xdnvmnnf

xdnvmnnf6#

var_image 34 =等待图像选取器().pickImage(源代码:ImageSource.camera,最大宽度:200.0,最大高度:200.0);

FirebaseStorage fs = FirebaseStorage.instance;

                  Reference  rootReference = fs.ref();

                  Reference pictureFolderRef = rootReference.child("pictures").child("image");

                  pictureFolderRef.putFile(File(_image34!.path)).whenComplete(() =>    print("uploaded")).then((storageTask)async{
                    String link = await storageTask.ref.getDownloadURL();
                  });
7jmck4yq

7jmck4yq7#

大家好,今天(2021年08月26日)有图书馆更新的朋友,这里有答案。

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

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

相关问题