从画廊或相机上传图像到rest api(错误:状态:错误,消息:用户不存在!,数据:空)

Posted

技术标签:

【中文标题】从画廊或相机上传图像到rest api(错误:状态:错误,消息:用户不存在!,数据:空)【英文标题】:upload image from gallery or camera to rest api (error: status: false, message: User Does Not Exists!, data: null) 【发布时间】:2021-11-30 09:43:24 【问题描述】:

我想将图片从画廊上传到 api 这是我的图片 api

Future  profileImageUser(String user_id, String image) async 

      String url = 'api';
      final response = await http.post(Uri.parse(url),
          body: 
            'user_id': user_id,
            'image': image
          
      );
      var convertedDataJson = jsonDecode(response.body);
      return convertedDataJson;
    

这是我如何获取用户 ID 和图像以通过 rest api 上传它

 ImagePicker picker = ImagePicker();
  Future _imgFromCamera() async 
    final image = await ImagePicker().pickImage(source: ImageSource.camera);


    setState(() 
      _image = image;
      final bytes = File(_image!.path).readAsBytesSync();
      String img64 = base64Encode(bytes);
     print(img64);
    );
    SharedPreferences prefs = await SharedPreferences.getInstance();
    if (_formKey.currentState!.validate()) 
      var myProfile = _image;
      print(myProfile);
      var myId = prefs.getString('user_id');
      print(myId);
      var rsp = await profileImageUser(
        myProfile.toString(),
        myId.toString(),
      );
      print(rsp);
       if (rsp['status'] == true) 
        print(rsp);
       else 
        print('failed');
      
    
  

当我从画廊或相机上传图片时,它会打印如下的 id 和图片

I/flutter ( 6665): Instance of 'XFile'
I/flutter ( 6665): 111

但它也显示用户不存在的错误

I/flutter ( 6665): status: false, message: User Does Not Exists!, data: null

请提供解决方案。

【问题讨论】:

请查看答案 【参考方案1】:
 Future  profileImageUser(String image,String user_id) async 

  String url = 'http://bitborgtech.com/appss/api/update_profile_image';
  final response = await http.post(Uri.parse(url),
      body: 
        'user_id': user_id,
        'image': image
      
  );
  var convertedDataJson = jsonDecode(response.body);
  return convertedDataJson;

【讨论】:

不,不是我检查它是否可用 @RashidAli,为什么要发myProfile.toString(),,要发myId 我正在将图像分配给我从图库中获取的 myprofile 变量,而不是作为 api 发送它需要图像和 id 兄弟,看看我的api调用,试试这个,希望能解决 你发送 var rsp = await profileImageUser(myProfile.toString(), myId.toString(), );并接收 Future profileImageUser(String user_id,String image)

以上是关于从画廊或相机上传图像到rest api(错误:状态:错误,消息:用户不存在!,数据:空)的主要内容,如果未能解决你的问题,请参考以下文章

使用改造 2 将图像从画廊/相机上传到服务器(okhttp 问题)

如何在特定的imageView上上传特定的图像点击来自android中的画廊和相机

状态:400,消息:执行您的操作时遇到问题!,数据:空

Android 相机图像未上传到服务器。使用多部分数据 Http post

从android中的画廊和相机中捕获图像

将图像从库中上传到服务器