账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ios11,formdata图片上传失败?
    25
    0

    框架用的vue。

    在上传之前需要压缩,开始用的canva进行压缩在上传,ios11图片无法上传,之后找了个插件,localResizeIMG。

    think2011/localResizeIMG

    结果,在安卓以及ios9、10测试都正常。ios11下图片仍然无法上传。可以打印出base64,以及转换的blob。

    前台显示图片用的base64,传到后台的是blob。

    开始以为是ios11图片格式HEIC的原因,之后用一张png格式图片测试。仍然不行。

    rst.base64前台展示的,可以正常展示。

    rst.file,传到后台,可以打印出来,blob格式

    lrz(file[i])
    .then(function(rst) {
    // 处理成功会执行
    var img = new Image();
    img.src = rst.base64;
    console.log(rst.base64)
    img.onload = function() {
        vm.images.push(rst.base64);
            vm.fourimages.push(rst.file)
    }
    console.log(rst.formData)
    console.log(rst.file)
    if(vm.images.length > 6) {
        vm.images.length = 6;
        vm.$dialog.toast({            
            mes: '最多上传6张!',            
                    timeout: 1500,
            icon: 'error',
        });
    }
    })
    .catch(functerr) {
    // 处理失败会执行
    })
    .always(function() {
    // 不管是成功失败,都会执行
    });
    let formData = new FormData()
    for(var l = 0; l < this.$store.state.images.length; l++) {
        formData.append('images[]', this.$store.state.images[l], "img" + [l] + ".jpeg");
    }
    let config = {
         headers: {
        'Content-Type': 'multipart/form-data'
        }
    }
    this.$http.post(url, formData, config).then(function(res) {
        if(res.status === 200) {
            this.$dialog.loading.close();
            this.$dialog.toast({
                mes: res.body.info,
                timeout: 1500,
                icon: 'success'
            });
            this.$router.push({
                path: '/'
            })
        }
    })
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部