قمت بعمل كود حتى استطيع من خلاله تمكين المستخدم من اختيار الصور من الاستوديو وتحميلها الى قاعدة البيانات على السيرفر الكود شغال ولكني لدي مشكله بسيطه انا جديد على فلاتر نوعا ما وخبرتي قليله شويه حتى استطيع تمكين المستخدم من اختيار 3 صور وتحميلهم قمت بتكرار الكود 3 مرات بمعنى تى استطيع وضع 3 ازارر للمستخدم طبعا كل زر يحتوي على صوره مختلفه قمت باعادة كتابة الاكود 3 مرات وطبعا هذا النقطه غلط والكود سوف يكون كبيرا جدا
احتاج مساعده من الذي لديه خبره في الامر لختصار العملية او الكود هذا كود الصفحه كامل الان: قمت بوضع علامة // هنا ================================= على المواقع التي قمت بتكرارها للحصول على الكود هذا
void main(){
runApp(MyApp(),);}classMyApp extends StatelessWidget{@overrideWidget build(BuildContext context){returnMaterialApp(
title:'',
theme:ThemeData(
primarySwatch:Colors.blue,
visualDensity:VisualDensity.adaptivePlatformDensity,),
home:UploadImageDemo(),);}}classUploadImageDemo extends StatefulWidget{UploadImageDemo(): super();
final String title ="";@overrideUploadImageDemoState createState()=>UploadImageDemoState();}classUploadImageDemoState extends State<UploadImageDemo>{
final _formKey =GlobalKey<FormState>();static final String uploadEndPoint ='https://******************.php';Future<File> file,files,filess;// هنا =================================String status ='';String base64Image,base64Images,base64Imagess;// هنا =================================File tmpFile,tmpFiles,tmpFiless;// هنا =================================String errMessage ='Error_Uploading';
showAlertDialog(BuildContext context){AlertDialog alert =AlertDialog(
content:newRow(
children:[CircularProgressIndicator(),Container(
margin:EdgeInsets.only(left:5),
child:Text("Addingpleasewait")),],),);
showDialog(
barrierDismissible:false,
context: context,
builder:(BuildContext context){return alert;},);// Navigator.of(context, rootNavigator: true).pop();}
showAlertDialogs(BuildContext context){AlertDialog alert =AlertDialog(
content:newRow(
children:[CircularProgressIndicator(),Container(
margin:EdgeInsets.only(left:5),
child:Text("Addingpleasewait")),],),);
showDialog(
barrierDismissible:false,
context: context,
builder:(BuildContext context){return alert;},);}// هنا =================================
chooseImage(){
setState((){
file =ImagePicker.pickImage(source:ImageSource.gallery);});
setStatus('');}// هنا =================================
chooseImages(){
setState((){
files =ImagePicker.pickImage(source:ImageSource.gallery);});
setStatus('');}// هنا =================================
chooseImagess(){
setState((){
filess =ImagePicker.pickImage(source:ImageSource.gallery);});
setStatus('');}
setStatus(String message){
setState((){
status = message;});}Future<void> showMyDialog() async {return showDialog<void>(
context: context,
barrierDismissible:false,// user must tap button!
builder:(BuildContext context){returnAlertDialog(
title:Text('Attentions'),
content:SingleChildScrollView(
child:ListBody(
children:<Widget>[Text('Allfieldsarerequired'),// Text('Would you like to approve of this message?'),],),),
actions:<Widget>[FlatButton(
child:Text('Closes'),
onPressed:(){Navigator.of(context).pop();},),],);},);}
startUpload(){if(null == tmpFile){
setStatus(errMessage);return;}
showAlertDialog(context);StringNameImage=DateTime.now().millisecondsSinceEpoch.toString();// هنا =================================StringNameImages=DateTime.now().microsecond.toString();// هنا =================================StringNameImagess=DateTime.now().month.toString();// هنا =================================//=======================DateStringDataOfToday;
var date =newDateTime.now().toString();
var dateParse =DateTime.parse(date);
var formattedDate ="${dateParse.day}-${dateParse.month}-${dateParse.year}";
setState((){DataOfToday= formattedDate.toString();});//=======================Date
upload(NameImage,NameImages,NameImagess);// هنا =================================}
upload(StringNameImage,NameImages,NameImagess// هنا =================================){
http.post(uploadEndPoint, body:{"image": base64Image,// هنا ================================="images": base64Images,// هنا ================================="imagess": base64Imagess,// هنا ================================="NameImage":NameImage,// هنا ================================="NameImages":NameImages,// هنا ================================="NameImagess":NameImagess,// هنا =================================}).then((result){if(result.statusCode ==200){_ShowDialog("added");}else{_ShowDialog("UpdateFailure");}}).catchError((error){
setStatus(error);});}Future<String>_ShowDialog(String msg) async {return showDialog<String>(
context: context,
barrierDismissible:false,// user must tap button!
builder:(BuildContext context){returnnewAlertDialog(
title:newText('Attentions'),
content:newSingleChildScrollView(
child:newListBody(
children:<Widget>[newText(msg),],),),
actions:<Widget>[newFlatButton(
child:newText('Closes'),
onPressed:(){// Navigator.pop(context);Navigator.of(context, rootNavigator:true).pop();},),],);},);}// هنا =================================Widget showImage(){returnFutureBuilder<File>(
future: file,
builder:(BuildContext context,AsyncSnapshot<File> snapshot){if(snapshot.connectionState ==ConnectionState.done &&
null != snapshot.data){
tmpFile = snapshot.data;
base64Image = base64Encode(snapshot.data.readAsBytesSync());returnFlex(direction:Axis.horizontal, children:[Expanded(
child:Card(
child:SizedBox(
width:400.0,
height:300.0,
child:Image.file(snapshot.data, fit:BoxFit.cover,),),),),]);}elseif(null != snapshot.error){returnconstText('Error Picking Image',
textAlign:TextAlign.center,);}else{returnconstText('',
textAlign:TextAlign.center,);}},);}// هنا =================================Widget showImages(){returnFutureBuilder<File>(
future: files,
builder:(BuildContext context,AsyncSnapshot<File> snapshot){if(snapshot.connectionState ==ConnectionState.done &&
null != snapshot.data){
tmpFiles = snapshot.data;
base64Images = base64Encode(snapshot.data.readAsBytesSync());returnFlex(direction:Axis.horizontal, children:[Expanded(
child:Card(
child:SizedBox(
width:400.0,
height:300.0,
child:Image.file(snapshot.data, fit:BoxFit.cover,),),),),]);}elseif(null != snapshot.error){returnconstText('Error Picking Image',
textAlign:TextAlign.center,);}else{returnconstText('',
textAlign:TextAlign.center,);}},);}// هنا =================================Widget showImagess(){returnFutureBuilder<File>(
future: filess,
builder:(BuildContext context,AsyncSnapshot<File> snapshot){if(snapshot.connectionState ==ConnectionState.done &&
null != snapshot.data){
tmpFiless = snapshot.data;
base64Imagess = base64Encode(snapshot.data.readAsBytesSync());returnFlex(direction:Axis.horizontal, children:[Expanded(
child:Card(
child:SizedBox(
width:400.0,
height:300.0,
child:Image.file(snapshot.data, fit:BoxFit.cover,),),),),]);}elseif(null != snapshot.error){returnconstText('Error Picking Image',
textAlign:TextAlign.center,);}else{returnconstText('',
textAlign:TextAlign.center,);}},);}@overrideWidget build(BuildContext context){returnnewScaffold(
appBar:AppBar(
title:Text("Add"),
actions:<Widget>[IconButton(
icon:Icon(Icons.done,
color:Colors.white,),
onPressed:(){if(_formKey.currentState.validate()){
startUpload();}},)],),
body:Form(
key: _formKey,
child:SingleChildScrollView(
child:newCenter(
child:Column(
crossAxisAlignment:CrossAxisAlignment.stretch,
children:<Widget>[Container(
child:Column(
crossAxisAlignment:CrossAxisAlignment.stretch,
children:<Widget>[Card(
child:Column(
children:[
showImage(),
showImages(),
showImagess(),],),),Card(
elevation:2,
child:Row(
crossAxisAlignment:CrossAxisAlignment.center,
mainAxisAlignment:MainAxisAlignment.center,
children:<Widget>[Container(
child:IconButton(
icon:Icon(Icons.camera_alt,
color:Colors.black,
size:38,),
onPressed:(){
chooseImage();},),),Container(
child:IconButton(
icon:Icon(Icons.camera_alt,
color:Colors.black,
size:38,),
onPressed:(){
chooseImages();},),),],),),]),),],),),),),);}}
ياليت اذا احد لديه الخبره الكافيه يساعدنا بارك الله فيكم
السؤال
Flutter Dev
السلام عليكم ورحمة الله وبركاته
تحيه طيبه للجميع
قمت بعمل كود حتى استطيع من خلاله تمكين المستخدم من اختيار الصور من الاستوديو وتحميلها الى قاعدة البيانات على السيرفر الكود شغال ولكني لدي مشكله بسيطه انا جديد على فلاتر نوعا ما وخبرتي قليله شويه حتى استطيع تمكين المستخدم من اختيار 3 صور وتحميلهم قمت بتكرار الكود 3 مرات بمعنى تى استطيع وضع 3 ازارر للمستخدم طبعا كل زر يحتوي على صوره مختلفه قمت باعادة كتابة الاكود 3 مرات وطبعا هذا النقطه غلط والكود سوف يكون كبيرا جدا
احتاج مساعده من الذي لديه خبره في الامر لختصار العملية او الكود هذا كود الصفحه كامل الان: قمت بوضع علامة // هنا ================================= على المواقع التي قمت بتكرارها للحصول على الكود هذا
ياليت اذا احد لديه الخبره الكافيه يساعدنا بارك الله فيكم
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.