uniapp APP支持非媒体类型文件上传

215 阅读1分钟

在使用uniapp开发app过程中,遇到了需要上传pdf、word等文件的场景。uniapp的api要么是不支持app端,要么是android限制应用获取全部文件的权限。好像现在android系统中只有文件管理类的软件才能获得访问全部文件的权限。 这里使用的是plus.io原生api:

const chooseFile = (() => {
  if (uni.getSystemInfoSync().platform === 'android' || uni.getSystemInfoSync().platform === 'ios') {
    plus.io.chooseFile(
      {
        filter: '*', //文件类型,*表示全部
        multiple: false // 是否多选
      },
      (res) => {
        const fileInfo = res.files[0]; //这里返回的是'/content'型的文件路径,可以直接使用ni.uploadFile来进行上传操作
        upLoad({ url: fileInfo }).then(res => {//upoad是自己封装的接口
          emit('fileSelected', res.data)
        }).catch(err => {

        })

      },
      (err) => {

      });
  } else {
    uni.showToast({
      title: '不支持文件上传',
      duration: 2000
    });
  }
})

需要注意的是,该方案只支持app,h5不支持。+