问题描述
**我需要有关此问题的帮助。我是扑的新手。而且我不能同时向 firebase 发送 1 个以上的文件。使用此代码,我可以毫无问题地发送一个文件,但是当日志中的 selecionaro 2 个文件显示这两个文件并且 firebase 仅使用两个文件名的一个文件时 **
import 'package:file_picker/file_picker.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:Flutter/material.dart';
import 'package:Flutter/services.dart';
class Estudos extends StatefulWidget {
@override
_Estudosstate createState() => _Estudosstate();
}
class _Estudosstate extends State<Estudos> {
final FirebaseStorage storage = FirebaseStorage.instance;
String fileName;
List<PlatformFile> _paths;
final FileType _pickingType = FileType.custom;
final bool _multiPick = true;
final List<UploadTask> _tasks = <UploadTask>[];
List<String> multiFiles = [];
Future<void> openFileExplorer() async {
setState(() {});
try {
_paths = (await FilePicker.platform.pickFiles(
type: _pickingType,allowMultiple: _multiPick,allowedExtensions: ['pdf','jpg'],))
?.files;
} on PlatformException catch (e) {
//print("Unsupported operation" + e.toString());
} catch (ex) {
//print(ex);
}
if (!mounted) return;
var arq = _paths.length;
print('arquivos: $arq');
setState(() {
fileName = _paths != null ? _paths.map((e) => e.name).toString() : '...';
uploadFireStorage();
});
}
Future uploadFireStorage() async {
var path = _paths.first.path;
final File file = File(path);
final Reference pastaraiz = storage.ref();
final Reference arquivo = pastaraiz.child('estudos').child(fileName);
final UploadTask task = arquivo.putFile(file);
setState(() {
_tasks.add(task);
task.snapshotEvents.listen((TaskSnapshot storageEvent) {
if (storageEvent.state == TaskState.running) {
setState(() {
const CircularProgressIndicator();
});
} else if (storageEvent.state == TaskState.success) {}
});
});
}```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)