首页 > 解决方案 > 尝试在后端和前端上传到 s3

问题描述

我有一个小问题,我已经尝试解决了几个小时,但是没有成功。

我需要上传到 s3(用于用户个人资料图片)。我在后端成功地这样做了。

然后我将 url 作为字符串存储在数据库中(作为用户个人资料图片属性)

然而,问题来了。我在前端使用颤振,需要做以下事情。

向上传网址发出http请求,可以成功。但我不知道执行以下操作的方法:

谢谢你。

标签: javascriptnode.jsamazon-s3mongooseflutter

解决方案


使用图像选择器的依赖项:

导入“包:image_picker/image_picker.dart”;

我这样做的方式是将文件转换为base64,然后是字节,然后在后端对其进行解码,然后从那里上传到s3。

uploadImage() async {
  var _image = await ImagePicker.pickImage(source: ImageSource.gallery);

  File croppedFile = await ImageCropper.cropImage(
    sourcePath: _image.path,
    ratioX: 1.0,
    ratioY: 1.0,
    maxWidth: 512,
    maxHeight: 512,
  );

  var _params = {
    "image_file": base64Encode(croppedFile.readAsBytesSync()),
  };

  return await restCall(POST, apiUrl.uploadImage, _params);
}

推荐阅读