关于flutter真机调试上传图片的问题

刚学习flutter时间不长,在flutter进行真机调试时,有一个上传文件的功能出了问题,请各位帮我看看指导一下,上传文件的代码如下:


Future<String> fileUplod1(String filePath,String fileName) async{
  print('fileUpload1执行...');
  BaseRequest baseRequest = new BaseRequest(static_string.upload, method: "post");
  var userData=initSP.preferences.get("userData");
  var userDataJson=json.decode(userData);
  baseRequest.addHeader("user_name", userDataJson["username"]);
  Map<String ,dynamic> map = Map();
  String path1=filePath+fileName;//path1的值为:'Pictures/Screenshots/Screenshot_20220317_011833.jpg',这个值就是图片在手机上的路径
//String path1="/storage/emulated/0/DCIM/Camera/JPEG_20220309_165521_359598180.jpg";   这是模拟器上的图片路径,上传是正常的

    map["user_name"]=userDataJson["username"];
    map["multipartFile"] = await MultipartFile.fromFile(path1);
    FormData formData = FormData.fromMap(map);
    baseRequest.setFormData(formData);
    var result = await HiNet.getInstance().fire(baseRequest);
    // print(result);
    return result["data"];
}
执行方法后flutter报错如下:提示没有找到这个文件,但是这个文件的路径是正确的
I/flutter (18149): fileUpload1执行...
E/flutter (18149): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FileSystemException: Cannot retrieve length of file, path = 'Pictures/Screenshots/Screenshot_20220317_011833.jpg' (OS Error: No such file or directory, errno = 2)
E/flutter (18149): #0      _File.length.<anonymous closure> (dart:io/file_impl.dart:366:9)
E/flutter (18149): #1      _rootRunUnary (dart:async/zone.dart:1434:47)
E/flutter (18149): #2      _CustomZone.runUnary (dart:async/zone.dart:1335:19)
E/flutter (18149): <asynchronous suspension>
E/flutter (18149): #3      multipartFileFromPath (package:dio/src/multipart_file_io.dart:15:16)
E/flutter (18149): <asynchronous suspension>
E/flutter (18149): #4      fileUplod1 (package:wx_flutter/sys/http/my_request.dart:84:28)

其它一些细节如下:
1 手机是荣耀50
2 AndroidManifest.xml中的权限如下:

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
```xml



我大概已经解决了这个问题,我获得的这个path,也就是Pictures/Screenshots/Screenshot_20220317_011833.jpg是个相对路径,断点打出来实际还有个绝对路径/storage/emulated/0/Pictures/WeiXin/wx_camera_1648091579156.jpg,只不过这个路径先要获取future,通过file类型才能有绝对路径path属性.但今天太晚了还没有测试.

OS错误:没有这样的文件或目录

path = 'Pictures/Screenshots/Screenshot_20220317_011833.jpg'

目录不完整,定位不到文件。

fileUplod1(String filePath,String fileName)

String filePath //这个参数有问题。需要完整目录