You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic2 Cordova相机插件如何限制相册选择文件的大小?

解决相册选择视频时限制文件大小的问题

好问题!可惜cordova-plugin-camera本身并没有提供直接在选择文件阶段限制大小的配置参数,但我们可以在获取到文件的URI后,借助cordova-plugin-file来读取文件大小,再做判断过滤。以下是具体的实现方案:

步骤1:确保安装必要插件

首先你需要安装文件操作插件,因为要读取文件大小:

cordova plugin add cordova-plugin-file

步骤2:修改代码,添加文件大小检查逻辑

在获取到FILE_URI后,我们用window.resolveLocalFileSystemURL解析文件,获取它的大小后和50MB(换算为字节是50 * 1024 * 1024 = 52428800)做对比:

const MAX_FILE_SIZE = 50 * 1024 * 1024; // 50MB 转换为字节单位

this.camera.getPicture({
  quality: 50,
  destinationType: this.camera.DestinationType.FILE_URI,
  sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
  mediaType: this.camera.MediaType.VIDEO,
}).then((fileUri) => {
  // 解析文件URI获取文件对象
  window.resolveLocalFileSystemURL(fileUri, (fileEntry) => {
    fileEntry.file((file) => {
      if (file.size > MAX_FILE_SIZE) {
        // 文件超过限制,提示用户
        console.log("文件大小超过50MB,请选择更小的文件");
        alert("文件大小超过50MB,请选择更小的文件");
      } else {
        // 文件符合要求,继续后续处理
        console.log("文件大小符合要求,大小为:", file.size);
        // 这里编写你原本的处理逻辑,比如上传文件等操作
      }
    }, (err) => {
      console.error("读取文件信息失败:", err);
    });
  }, (err) => {
    console.error("解析文件URI失败:", err);
  });
}, (err) => {
  console.log("获取文件失败:", err);
});

补充说明

  • 这种方式属于事后检查,也就是用户选完文件后才判断大小,虽然不能在选择界面直接过滤,但能达到最终限制文件大小的效果。
  • 如果需要更精准的体验(比如在选择界面就过滤大文件),可能需要寻找更专门的文件选择插件,但对于大多数场景,上面的方案已经足够实用。

内容的提问来源于stack exchange,提问作者Mathankumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:52:30