Untitled
unknown
plain_text
10 months ago
3.7 kB
0
Indexable
import 'dart:async'; import 'package:carousel_slider/carousel_slider.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'dart:io'; import 'package:image_picker/image_picker.dart'; import 'package:carousel_slider/carousel_controller.dart'; import 'package:image_picker_web/image_picker_web.dart'; import 'package:like_button/like_button.dart'; import 'package:social_media/data/network/firebaseService.dart'; class ImageUpload extends StatefulWidget { const ImageUpload({super.key}); @override State<ImageUpload> createState() => _ImageUploadState(); } class _ImageUploadState extends State<ImageUpload> { List<File> selectedImages = []; late Future<Uint8List> selectedImageInBytes; final picker = ImagePicker(); @override Widget build(BuildContext context) { return Scaffold( body: Column( children: [ Container( alignment: Alignment.center, margin: EdgeInsets.all(20), child: TextButton(onPressed: (){ if(selectedImages.length==0){ PickImages(); } else{ selectedImages.forEach((image) { FirebaseService.uploadPhotos(file: image); }); } }, style: ButtonStyle(backgroundColor: MaterialStateColor.resolveWith((color) => Color( 0xFF7076BE))), child: Text(selectedImages.length==0?'Select Images':'submit', style: TextStyle(color: Color(0xFFFFFFFF)), ) ), ), Container( padding: EdgeInsets.all(10), decoration: BoxDecoration( color: Color(0xFF8774AF) ), child: CarouselSlider.builder(itemCount: selectedImages.length!=0?selectedImages.length:1, itemBuilder: (context, index, realIndex) { if(selectedImages.length ==0){ return Text('No Images Selected', style: TextStyle(color: Color(0xFFFFFFFF)),); } else{ return Image.network(selectedImages[index].path); } }, options: CarouselOptions( enableInfiniteScroll: false, height: 200, autoPlay: true, )), ) ], ) ); } Future PickImages() async { if (kIsWeb) { final List<XFile> pickedImage = await picker.pickMultiImage (); List<XFile> xfilePick = pickedImage; setState( () { if (xfilePick.isNotEmpty) { for (var i = 0; i < xfilePick.length; i++) { selectedImages.add(File(xfilePick[i].path)); selectedImageInBytes = xfilePick[i].readAsBytes(); File image = File(selectedImageInBytes.toString()); } } }, ); } else{ final List<XFile> pickedImage = await picker.pickMultiImage (); List<XFile> xfilePick = pickedImage; setState( () { if (xfilePick.isNotEmpty) { for (var i = 0; i < xfilePick.length; i++) { selectedImages.add(File(xfilePick[i].path)); } } }, ); } } }
Editor is loading...
Leave a Comment