框架用的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: '/'
})
}
})
。。。我也遇到这个问题了,ios11才有这个问题,你咋解决的?