zoukankan      html  css  js  c++  java
  • flutter 图片视频选择组件 image_picker

    安装 

    image_picker: ^0.6.7+15

    使用方法:

    import 'package:image_picker/image_picker.dart';
    
    final ImagePicker _picker = ImagePicker();
    
    PickedFile pcikeFile;
    // 图片
    pcikeFile = await _picker.getImage(source: ImageSource.gallery);
    pcikeFile = await _picker.getImage(source: ImageSource.camera);
    
    // 视频
    pcikeFile = await _picker.getVideo(source: ImageSource.gallery, maxDuration: const Duration(seconds: 60));
    pcikeFile = await _picker.getVideo(source: ImageSource.camera, maxDuration: const Duration(seconds: 60));
     
    PickedFile 转 文件对象 file
    import 'dart:io';
    
    File file = File(pcikeFile.path)

    在android 下,选择相册视频时有个bug, 得到的路径中文件名时xxx.jpg 

    如图,我选择一个相册中视频得到 pcikeFile.path 路径如下 ,

    暂时解决办法:

    先判断 android 环境 然后判断是否相册选择的视频,然后 修改 文件名字的后缀为 .mp4,就可以正常上传,正常使用了

    var path = pcikeFile.path;
    String suffix = path.substring(path.lastIndexOf(".") + 1, path.length);
    if (Platform.isAndroid && imageSource == ImageSource.gallery && type == 'video') {
        suffix = 'mp4';
    }
    int num = new DateTime.now().millisecondsSinceEpoch;
    String name = num.toString() + '.' + suffix;
    // 如下,这样把这个Map 按文件上传方式上传即可
    Map item = {'path': path, 'name': name,};

    亲测可用

  • 相关阅读:
    偏函数
    通过local对象的使用,分析flask中全局request对象为神魔不同的视图函数中不会混乱--协助解读flask的源码
    flask安装即web框架介绍
    事件
    文件复制工具
    非文本文件的写入
    文件读取
    sys模块
    datetime模块
    事件冒泡与捕获
  • 原文地址:https://www.cnblogs.com/bruce-gou/p/14120309.html
Copyright © 2011-2022 走看看