Advertisement
yudiwibisono

fluter_upload_image

Jun 14th, 2023
1,192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.47 KB | None | 0 0
  1. // dependencies:
  2. //  dio: ^5.2.1+1
  3. //  image_picker: ^0.8.4+2
  4. //  http_parser: ^4.0.2
  5.  
  6. import 'package:flutter/material.dart';
  7. import 'package:image_picker/image_picker.dart';
  8. import 'package:dio/dio.dart';
  9. import 'package:http_parser/http_parser.dart';
  10.  
  11. void main() {
  12.   runApp(const MyApp());
  13. }
  14.  
  15. class MyApp extends StatefulWidget {
  16.   const MyApp({super.key});
  17.   @override
  18.   State<MyApp> createState() => _MyAppState();
  19. }
  20.  
  21. class _MyAppState extends State<MyApp> {
  22.   String namaImage = "";
  23.  
  24.   final dio = Dio();
  25.  
  26.   Future<String> uploadFile(List<int> file, String fileName) async {
  27.     print("mulai");
  28.     FormData formData = FormData.fromMap({
  29.       "file": MultipartFile.fromBytes(file,
  30.           filename: fileName, contentType: MediaType("image", "png")),
  31.     });
  32.     var response =
  33.         //untuk chorme
  34.         await dio.post("http://127.0.0.1:8000/uploadimage", data: formData);
  35.        
  36.         //untuk android
  37.         //await dio.post("http://10.0.2.2:8000/uploadimage", data: formData);  
  38.  
  39.     print(response.statusCode);
  40.     if (response.statusCode == 200) {
  41.       setState(() {
  42.         namaImage = fileName;
  43.       });
  44.     }
  45.     return fileName;
  46.   }
  47.  
  48.   Future<void> _getImageFromGallery() async {
  49.     print("get image");
  50.     final picker = ImagePicker();
  51.     final pickedImage = await picker.pickImage(source: ImageSource.gallery);
  52.     final bytes = await pickedImage?.readAsBytes();
  53.     if (pickedImage != null) {
  54.       print("mulai upload");
  55.       await uploadFile(bytes as List<int>, pickedImage.name);
  56.     }
  57.   }
  58.  
  59.   @override
  60.   Widget build(BuildContext context) {
  61.     return MaterialApp(
  62.         home: Scaffold(
  63.       appBar: AppBar(
  64.         title: const Text('Image Pijcker Example'),
  65.       ),
  66.       body: Center(
  67.         child: Column(
  68.           mainAxisAlignment: MainAxisAlignment.center,
  69.           children: [
  70.             namaImage != ""
  71.                 ? Image.network(
  72.                     //chrome
  73.                     'http://127.0.0.1:8000/getimage/$namaImage',
  74.                    
  75.                     //android
  76.                     //'http://10.0.2.2:8000/getimage/$namaImage',
  77.                     height: 200,
  78.                   )
  79.                 : const Text(" Image Tidak Tersedia"),
  80.             const SizedBox(height: 20),
  81.             ElevatedButton(
  82.               onPressed: _getImageFromGallery,
  83.               child: const Text('Select Image'),
  84.             ),
  85.           ],
  86.         ),
  87.       ),
  88.     ));
  89.   }
  90. }
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement