【问题标题】:Image upload using post method in Flutter在 Flutter 中使用 post 方法上传图片
【发布时间】:2021-11-03 18:59:06
【问题描述】:

我必须使用 Flutter 中的提供程序将图像从画廊上传到服务器。

这是文件选择器

  _loadPicker(ImageSource source) async {
   File picked = await ImagePicker.pickImage(source: ImageSource.gallery);
   print(picked);
   if (picked != null) {
   final response = await Provider.of<ProfilePictureUpdate>(context, listen: 
    false).profilePicUpdate(picked);
    if (response["status"] ) {
      Fluttertoast.showToast(msg: response["title"]);
     }
      else {
     Fluttertoast.showToast(msg: response["title"]);
      }
     }
    }

这里是post方法

 Future<Map<String, dynamic>> profilePicUpdate(picked) async {
 try {
   final response = await ApiRequest.send(route: "profile/update/picture", method: "POST", 
   body: {
    "  photo_url" : picked,
    });
  if (response.statusCode == 200 ) {
    return {
      "status": true,
      "title" : response["title"]
    };
  }
  }

【问题讨论】:

    标签: flutter flutter-provider flutter-image


    【解决方案1】:

    如果你想发送图像给你,你必须在'Dio'中使用 formData(multi part) 类似 网络(enctype)。在http中,也可以使用multipart。

    必须记住你使用的图像总是不一样的,这里当服务器端参数名称相同时使用这个字段。

     class ImageRepository {
      Future<dynamic> uploadImage(filepath) async {
      FormData formData = FormData.fromMap({
        "image": await MultipartFile.fromFile(filepath,
          filename: filepath.split('/').last)
       });
       var response = await Dio().post(
        url,
        data: formData),
      );
      print(response.data);
        if (response.statusCode == 200) {
        return 'Image Upload';
      } else {
        throw Exception 'Problem occour';
      }
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 2019-11-25
      • 2022-07-29
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      相关资源
      最近更新 更多