尝试上传到后端和前端的s3

时间:2019-04-30 16:33:29

标签: javascript node.js amazon-s3 mongoose flutter

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

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

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

但是,问题出在这里。我在前端使用了flutter,因此需要执行以下操作。

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

  • 允许用户从相机胶卷中选择一张用于请求的照片。在节点中,用户通过req.files.file选择一个文件,该文件被上传到s3。我如何将req.files.file(用户选择上传的文件)转换为用户从相机胶卷中选择的文件。那是我唯一的问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

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

  

导入'package: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);
}