当前位置:   article > 正文

flutter getTemporaryDirectory()的使用

flutter gettemporarydirectory

下面是上传音视频流的截图,先保存在缓存,然后请求接口,成功或者失败会删除文件。
可以在Device File Explorer查看,
Android:

会返回 /data/data//cache 这个目录,是应用私有的缓存目录。

iOS:

会返回 Library/Caches 下的一个目录,是应用共享的缓存目录。

  //上传音视频截图
  postSnapshotRequest(
      {required int sendUserId,
      required int recUserId,
      required String order,
      required Uint8List imageBytes}) async {
    final tempDir = await getTemporaryDirectory();
    var file = await File(
            '${tempDir.path}/image_${DateTime.now().millisecondsSinceEpoch}.jpg')
        .create();

    file.writeAsBytesSync(imageBytes);

    PrintUtil.prints('图片裁剪 文件地址:${file.path}');

    String path = file.path;
    String name = path.substring(path.lastIndexOf('/') + 1, path.length);
    PrintUtil.prints("tag_图片路径path $path");
    PrintUtil.prints("tag_图片路径name $name");
    var attFile = await MultipartFile.fromFile(path, filename: name);
    FormData formData = FormData.fromMap({
      'capture_img': attFile,
      "order_no": order,
      "c_user_id": sendUserId,
      "r_user_id": recUserId
    });

    httpReq.HttpRequest.intance
        .postHttpFromBusiness(Api.AUDIO_AND_VIDEO_CAPTURE, (data) {
      deleteFile(path);
    }, (error, errorCode) {
      deleteFile(path);
    }, parameters: formData);
  }
  
  void deleteFile(String filepath) {
    var file = File(filepath);
    if (file.existsSync()) {
      file.deleteSync();
    }
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/308704
推荐阅读
相关标签
  

闽ICP备14008679号