一尘不染

如何在Flutter中使用JSON通过帖子发送图片?

flutter

我正在构建一个flutter应用程序,该应用程序利用图像选择器捕获或从图库中选择图像,但是我很难将图像从客户端发布到服务器。

从我收集的数据中,我可以通过将图像文件转换为字节,然后将其作为BASE64发送来通过JSON发送本地图像。

import 'dart:convert';
import 'package:crypto/crypto.dart';

Future<Map> _avatarSubmit() async {
    String url = api + '/api/account';
    http.Response response = await http.post(Uri.encodeFull(url), headers: {
      "Accept": "application/json",
      "Cookie": "MYCOOKIE=" + sessionCookie2 + "; MYTOKENS=" + sessionCookie3,
      "Content-type": "multipart/form-data",
    }, body: {
      "image": "",
    });
    Map content = JSON.decode(response.body);
    return content;
  }

我的问题是如何将设备中的图像文件转换为字节,以便随后可以使用加密插件将其转换为BASE64?

先感谢您。


阅读 278

收藏
2020-08-13

共1个答案

一尘不染

由于图像选择器插件提供了图像的filePath,因此您可以使用dart:io中的File类加载图像,并使用dart:convert中的BASE64将其转换为BASE64字符串。

这是您可以执行的操作:

import 'dart:io';
import 'dart:convert';

File imageFile = new File(imageFilePath);
List<int> imageBytes = imageFile.readAsBytesSync();
String base64Image = BASE64.encode(imageBytes);

希望这对您有所帮助!

2020-08-13