RN 中文件压缩上传

需求

  • 上传的文件必须小于 1M,若大于1M则压缩

需要考虑的问题点

  • 用react-native-image-crop-picker 拍照和从相册选择照片压缩,react-native-image-resizer 压缩文件 ,虽然两个都可以压缩图片,但都无法保证压缩后的大小
  • 采用渐近法,若远远大于1M,则多压缩;小于1M,则少压缩;提高压缩的速度
  • 上传成功后本地缓存数据用react-native-fs,方便预览,缓存成功后再删除多次压缩过程中产生的脏数据

解决方案

  • 用递归的方法,只要大于1M 则压缩,否则上传附件
compressImage = image => {
    if (image.size > 6M) {
      // 调用压缩方法,传参数
    } else if (image.size >3M) {
      // 调用压缩方法,传参数
    } else if (image.size > 1M) {
      // 调用压缩方法,传参数
    } else {
       //调用上传文件的方法
    }
  };

你可能感兴趣的:(RN 中文件压缩上传)