Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Flutter] upload d'une image

Sujet résolu
    2 novembre 2020 à 12:52:14

    Bonjour à tous,

    J'ai suivis plusieurs tutos qui m'expliquaient comment upload une image. J'ai donc opté pour l'idée d'utiliser Image Picker qui correspond à mes attentes. Ca fait plusieurs jours que je bloque, j'ai essayé plusieurs techniques, et ca marche toujours pas...

    J'ai donc assigné la fonction gallery() à mon bouton :

    floatingActionButton: FloatingActionButton(
            onPressed: () {
              _gallery();
            },
            child: const Icon(Icons.add),

    (c'est le bouton de base quand on créer un nouveau projet Flutter)

    Enfin, voici la fonction gallery :

    class _HomeWidgetState extends State<HomeWidget> {
    
      File imageFile;
      final picker = ImagePicker();
    
      _gallery() async {
        final pickedFile = await ImagePicker.pickImage(source: ImageSource.gallery);
    
      this.setState(() {
        if (pickedFile != null) {
          imageFile = File(pickedFile.path);
        }
        else {
          print('no image');
        }
        });
    
      String name = 'Demo Title';
      String desc = 'Ma super description :)';
      List<int> imageBytes = imageFile.readAsBytesSync();
      String image = base64Encode(imageBytes);
    
      String url = 'https://api.imgur.com/3/upload';
      Map<String, String> headers = {"Authorization": "Bearer " + globals.access_token};
      String json = '{"title": "$name", "name": "$name", "description": "$desc", "image": "$image", "type": "base64"}';
    
      final response = await http.post(url, headers: headers, body: json);
      if (response.statusCode != 200) {
        return null;
      }
      print("********end************");
      
      //int statusCode = response.statusCode;
      //String body = response.body;
    }

    J'arrive donc bien à accéder à mes images, mais la requête ne marche pas.. Auriez-vous une idée ?

    Merci pour votre lecture et pour votre aide


    • Partager sur Facebook
    • Partager sur Twitter
      5 novembre 2020 à 20:16:45

      Edit: ca a marché comme ca :
      class _HomeWidgetState extends State<HomeWidget> {
        File imageFile;
        final picker = ImagePicker();
      
      _gallery() async {
          final pickedFile = await ImagePicker.pickImage(source: ImageSource.gallery);
      
        this.setState(() {
          if (pickedFile != null) {
            imageFile = File(pickedFile.path);
          }
          else {
            print('no image');
          }
          });
      
        String name = 'Demo Title';
        String desc = 'Ma super description :)';
        List<int> imageBytes = imageFile.readAsBytesSync();
        String image = base64Encode(imageBytes);
      
        String url = 'https://api.imgur.com/3/upload';
        Map<String, String> headers = {"Authorization": "Bearer " + globals.access_token};
        Map<String, dynamic> json = {"title": name, "name": name, "description": desc, "image": image, "type": "base64"};
      
        final response = await http.post(url, headers: headers, body: json);
        if (response.statusCode != 200) {
          return null;
        }
        print("********end************");
      }
      
      • Partager sur Facebook
      • Partager sur Twitter

      [Flutter] upload d'une image

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown