node.js的OSS上传图片在部分ios机型上无法上传

H5中使用了node.js的图片上传功能,是用react写的,在Pc、安卓上均可正常上传,但部分ios机型无法上传,也没有报错,就是一直不响应结果一直转圈。代码如下:

Toast.loading('正在上传图片...',0);

    let OSS = require('ali-oss');
    let client = new OSS({
      region: 'oss-cn-shenzhen',
      //云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,部署在服务端使用RAM子账号或STS,部署在客户端使用STS。
      accessKeyId: '*****',
      accessKeySecret: '******',
      bucket: '*****',
      secure:true,
    });

    function dataURLtoFile(dataurl, filename) {
        let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
          bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
        while(n--){
          u8arr[n] = bstr.charCodeAt(n);
        }
        return new File([u8arr], filename, {type:mime});
      }
      let file ;
      let file2 ;
      var names = `cert_font_${this.props.match.params.cus_name}_${this.props.match.params.cert_code}.png`;
        file = dataURLtoFile(this.state.certImag_font[0].url, names);
        var names2 = `cert_back_${this.props.match.params.cus_name}_${this.props.match.params.cert_code}.png`;
        file2 = dataURLtoFile(this.state.certImag_back[0].url, `cert_back_${this.props.match.params.cus_name}_${this.props.match.params.cert_code}.png`);

    const success = (result) => {
        this.props.history.goBack();
        Toast.hide();
        return result;
    }
    //下面的文件目录名称需要加上用户信息标识,如身份证等;
    async function put (aaaa) {
        try {
          let result = await client.put(`xinbao-guangda/${names}`,file);
          let result2 = await client.put(`xinbao-guangda/${names2}`,file2);
          console.log(result,result2);
          return success();
        } catch (e) {
            console.log(e); 
            Toast.fail('图片上传失败');
        }
      }
    put(this);
当前问题共有如下(2)个解决方案
  • magics
    magics

    atob is not defined
    File is not defined
    怎么解决的?

  • helax
    helax

    提工单咯,反应很快滴

上一篇: 阿里云OSS 文件无法下载
下一篇:没有了