programing

Float에서 XFile을 파일로 변환하는 방법

yellowcard 2023. 7. 4. 21:49
반응형

Float에서 XFile을 파일로 변환하는 방법

Firebase는 File 형식으로만 업로드하기 때문에 파일을 Firebase에 업로드하기 위해 XFile을 File로 변환하고 싶습니다.코드는 다음과 같습니다.

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

XFile을 Firebase에 업로드할 수 없다는 오류가 표시됩니다.

XFile 패키지의 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';
File file = File(videofile.path);

XFile 플러그인이 다른 플러그인과 충돌할 수 있으므로 .toFile()이 작동하지 않을 수 있습니다.

위젯 내부의 이미지를 표시하기 위해 X파일 이미지를 파일 이미지로 변환하려면 다음을 사용합니다.

XFile? selectedImage;

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

반환되는 네트워크 유형 경로와 관련된 문제에 직면한 모든 사용자에게 적합합니다.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());
    }

처리/처리하기 전에 필요한 경우 이미지를 압축하는 것이 좋습니다.

final file = videofile.toFile();

플러그인의 문서에서 더 많은 예제를 찾을 수 있습니다.

File convertToFile(XFile xFile) => File(xFile.path);
var _image34 = await ImagePicker().pickImage(source: ImageSource.camera, maxWidth: 200.0, maxHeight: 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();
});

안녕하세요, 오늘(2021년 8월 26일) 도서관 업데이트 하신 분들을 위한 답변입니다.

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

도움이 된다면 알려주세요, 감사합니다.

언급URL : https://stackoverflow.com/questions/66185696/how-to-convert-a-xfile-to-file-in-flutter

반응형