鍍金池/ 問答/HTML/ ios11,formdata圖片上傳失敗?

ios11,formdata圖片上傳失?。?/h1>

框架用的vue。

在上傳之前需要壓縮,開始用的canva進(jìn)行壓縮在上傳,ios11圖片無法上傳,之后找了個插件,localResizeIMG。

think2011/localResizeIMG

結(jié)果,在安卓以及ios9、10測試都正常。ios11下圖片仍然無法上傳。可以打印出base64,以及轉(zhuǎn)換的blob。

前臺顯示圖片用的base64,傳到后臺的是blob。

開始以為是ios11圖片格式HEIC的原因,之后用一張png格式圖片測試。仍然不行。

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

rst.file,傳到后臺,可以打印出來,blob格式

lrz(file[i])
.then(function(rst) {
// 處理成功會執(zhí)行
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) {
// 處理失敗會執(zhí)行
})
.always(function() {
// 不管是成功失敗,都會執(zhí)行
});
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: '/'
        })
    }
})

回答
編輯回答
瘋子范

。。。我也遇到這個問題了,ios11才有這個問題,你咋解決的?

2018年2月8日 04:50
編輯回答
青黛色

樓主解決了嗎,請教

2018年8月12日 09:47