Flutter Dev نشر 15 أكتوبر 2021 أرسل تقرير نشر 15 أكتوبر 2021 تحيه طيبه للجميع اقوم بستعمال المكتبة التاليه : https://pub.dev/packages/wechat_assets_picker لتمكين المستخدم من اختيار مجموعة من الصور وبعدها يتم رفع هذا الصور الى قاعدة البيانات على السيرفر بواسطة mysql + php +http احاول حفظ الصور التي يقوم المستخدم باختيارها الان ولكن الامر لا ينجح حتى انني لا اتلقى اي اشعار بوجود خطاء او ما شابه لا اعلم ما هيا المشكله بضبط الصفحه كامل كالتالي: import 'dart:io'; import 'package:flutter/material.dart'; import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:wechat_assets_picker/wechat_assets_picker.dart'; void main() { runApp( MyApp(), ); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: UploadImageDemo(), ); } } class UploadImageDemo extends StatefulWidget { @override UploadImageDemoState createState() => UploadImageDemoState(); } class UploadImageDemoState extends State<UploadImageDemo> { List<AssetEntity> assets = <AssetEntity>[]; Future<void> selectAssets() async { final List<AssetEntity> result = await AssetPicker.pickAssets( context, maxAssets: 4, pathThumbSize: 84, gridCount: 4, selectedAssets: assets, requestType: RequestType.common, ); if (result != null) { setState(() { assets = List<AssetEntity>.from(result); }); } } Widget imageWidget(int index) { return Positioned.fill( child: Image( image: AssetEntityImageProvider( assets.elementAt(index), isOriginal: false, ), fit: BoxFit.cover, ), ); } String base64Image; static final String UplodURL ='https://XXXXXXXXXXXXXXXXX.php'; void SaveDate() async { for (int i = 0; i < assets.length; i++) { if (assets[i].runtimeType == String) { final bytes = File(assets[i].toString()).readAsBytesSync(); base64Image = base64Encode(bytes); var response = await http.post(Uri.parse(UplodURL), body: { "image": base64Image, }); if (response.statusCode == 200) { setState(() { print(response.statusCode); }); } else {} } } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( actions: <Widget>[ IconButton( icon: Icon( Icons.save, color: Colors.black, ), onPressed: () { SaveDate(); }, ), IconButton( icon: Icon( Icons.add, color: Colors.black, ), onPressed: () { selectAssets(); }, ), ], ), body: Column( children: <Widget>[ AnimatedContainer( duration: kThemeAnimationDuration, curve: Curves.easeInOut, width: MediaQuery.of(context).size.width, height: assets.isNotEmpty ? 100.0 : 0.0, decoration: BoxDecoration( color: Theme.of(context).backgroundColor, ), child: ListView.builder( physics: const BouncingScrollPhysics(), scrollDirection: Axis.horizontal, itemCount: assets.length, itemBuilder: (BuildContext context, int index) { return Container( margin: const EdgeInsets.symmetric(horizontal: 5.0, vertical: 10.0), child: AspectRatio( aspectRatio: 1.0, child: ClipRRect( borderRadius: BorderRadius.circular(5.0), child: Stack( children: <Widget>[ imageWidget(index), ], ), ), ), ); } ), ), ], ), ); } } اما صفحة php كالتالي: <?php $image = $_POST['image']; include 'con.php'; $path = "img/" . uniqid() . ".png"; $actualpath = "https://***********/$path"; $sql = "INSERT INTO testtable (image) VALUES (?)"; $stmt = $con->prepare($sql); $stmt->bind_param("s",$actualpath); $stmt->execute(); $result = $stmt->get_result(); file_put_contents($path,base64_decode($image)); $stmt->close(); ?> بنسبة الى صفحة php انا واثق انها تعمل بدون اي مشكلة لنني قمت باختبار ذلك من خلال رابط الصفحه المشكله في كود حفظ الصور ()SaveDate في فلاتر ياليت اذا احد لديه فكره او معرفة بالمشكله يفيدنا لو تكرمتو 1 اقتباس
0 بلال زيادة نشر 15 أكتوبر 2021 أرسل تقرير نشر 15 أكتوبر 2021 هل حاوت استخدام حزمة dio لكي تتمكن من رفع الصور بشكل سليم , فهي لديها تعامل رائع في رفع الصور Future<bool> uploadImage(filePath, String image) async { final url = Config.url + Config.uploadImage; String fileName = filePath.path.split("/").last; var data = FormData.fromMap({ "image": await MultipartFile.fromFile( filePath.path, filename: fileName, ), "email": email, }); Dio dio = new Dio(); var res = await dio.post(url, data: data, options: new Options(headers: { HttpHeaders.authorizationHeader: 'Bearer $token', HttpHeaders.contentTypeHeader: 'application/json' })); return res.statusCode == 200 ? true : false; } بحيث يمكنك تمرير مسار الصورة ليتم رفع الصورة إلى المسار المحدد في api و اسم الصورة إذا أردت حفظ اسم الصورة بداخل قاعدة البيانات. 1 اقتباس
0 Flutter Dev نشر 15 أكتوبر 2021 الكاتب أرسل تقرير نشر 15 أكتوبر 2021 بتاريخ 51 دقائق مضت قال بلال زيادة: هل حاوت استخدام حزمة dio لكي تتمكن من رفع الصور بشكل سليم , فهي لديها تعامل رائع في رفع الصور Future<bool> uploadImage(filePath, String image) async { final url = Config.url + Config.uploadImage; String fileName = filePath.path.split("/").last; var data = FormData.fromMap({ "image": await MultipartFile.fromFile( filePath.path, filename: fileName, ), "email": email, }); Dio dio = new Dio(); var res = await dio.post(url, data: data, options: new Options(headers: { HttpHeaders.authorizationHeader: 'Bearer $token', HttpHeaders.contentTypeHeader: 'application/json' })); return res.statusCode == 200 ? true : false; } بحيث يمكنك تمرير مسار الصورة ليتم رفع الصورة إلى المسار المحدد في api و اسم الصورة إذا أردت حفظ اسم الصورة بداخل قاعدة البيانات. اهلا بك اخي نعم قمت بمحاولة بواسطة هذا المكتبه ولكني لا املك خبره سابقه في التعامل لديها انا استعمل http ياليت لو تكرمت تضع الكود كامل مع كود php الخاص فيها 1 اقتباس
0 Wael Aljamal نشر 19 أكتوبر 2021 أرسل تقرير نشر 19 أكتوبر 2021 بتاريخ On 10/15/2021 at 10:39 قال مروان مروان3: اهلا بك اخي نعم قمت بمحاولة بواسطة هذا المكتبه ولكني لا املك خبره سابقه في التعامل لديها انا استعمل http ياليت لو تكرمت تضع الكود كامل مع كود php الخاص فيها هل من مستجدات؟ اقتباس
السؤال
Flutter Dev
تحيه طيبه للجميع
اقوم بستعمال المكتبة التاليه :
https://pub.dev/packages/wechat_assets_picker
لتمكين المستخدم من اختيار مجموعة من الصور وبعدها يتم رفع هذا الصور الى قاعدة البيانات على السيرفر بواسطة mysql + php +http
احاول حفظ الصور التي يقوم المستخدم باختيارها الان ولكن الامر لا ينجح حتى انني لا اتلقى اي اشعار بوجود خطاء او ما شابه لا اعلم ما هيا المشكله بضبط
الصفحه كامل كالتالي:
اما صفحة php كالتالي:
بنسبة الى صفحة php انا واثق انها تعمل بدون اي مشكلة لنني قمت باختبار ذلك من خلال رابط الصفحه
المشكله في كود حفظ الصور ()SaveDate في فلاتر ياليت اذا احد لديه فكره او معرفة بالمشكله يفيدنا لو تكرمتو
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.