flutter getTemporaryDirectory()的使用

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

可以在Device File Explorer查看,

Android:

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

iOS:

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

c 复制代码
  //上传音视频截图
  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();
    }
  }
相关推荐
GitLqr13 小时前
深度拆解 Dart 事件循环:从面试题看清 Microtask 与 Event Queue 的执行顺序
flutter·面试·dart
吾儿良辰14 小时前
Flutter 迎来重大变革:Material 设计系统拆分,迈向更开放的 UI 框架
javascript·flutter·ui
看昭奚恤哭16 小时前
Flutter 布局核心思想
开发语言·javascript·flutter
末代iOS程序员华仔17 小时前
iOS上架海外工具类应用合规指南:避免封号与下架风险
flutter·ios·swift
末代iOS程序员华仔19 小时前
Flutter 开发 iOS App 上架全流程与常见问题分析
flutter·ios
末代iOS程序员华仔19 小时前
Flutter开发iOS海外工具类应用上架合规指南与风险规避
flutter·ios
蜡台1 天前
Flutter 环境搭建 Dart配置
flutter·dart
落叶飘飘s2 天前
餐饮服务与软件创新的融合:解析海底捞 APP 的 Flutter 鸿蒙开发之路
flutter·华为·harmonyos
起司喵喵2 天前
Flutter-MacOS桌面OS系统|flutter.+window_manager客户端OS模板
flutter·macos·策略模式
Wuxiaoming1352 天前
flutter app的logo和splash logo尺寸
flutter