我正在构建一个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?
先感谢您。
由于图像选择器插件提供了图像的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);
希望这对您有所帮助!