手机拍照然后上传没问题 但是在相册中选择的照片上传 ios手机不行 安卓一部分手机也点击没反应
最后对比了下参数 发现路径有所不同
使用uni.saveFile保存路径好在重新上传
javascript
saveFileSync(tempFilePath){
return new Promise((resolve, reject) => {
uni.saveFile({
tempFilePath,
success: function (file) {
resolve(file.savedFilePath)
},
fail: function (error) {
reject(error)
}
})
})
},
javascript
uni.chooseImage({
count: 1, //默认9
sizeType: ["compressed"], //可以指定是原图还是压缩图,默认二者都
sourceType: ['camera','album'],
success: async function(result) {
let ewm = result.tempFiles[0]
const path = await that.saveFileSync(ewm.path)
if (result.errMsg === "chooseImage:ok") {
result.tempFiles[0].path=path
// that.upload(path);
that.upload(result.tempFiles[0]);
} else {
uni.showToast({
title: "图片上传失败",
icon: "none",
});
}
},
fail(err) {
uni.showToast({
title: "取消上传",
icon: "none",
});
},
});
javascript
Upload(event) {
const token = this.getToken();
// const url = this.getuploadUrl();
const imgList = [];
uni.showLoading({
title: "上传中...",
mask: true,
});
try {
const [err, res] = await uni.uploadFile({
url: `${HOST}/resource/file/upload`,
filePath: event.path,
name: "file",
header: {
Authorization: token,
},
});
if (res && (res.statusCode === 200)) {
const result = JSON.parse(res.data);
if (result.code == 200) {
let res1 = JSON.parse(res.data);
res1.data.uuid = res1.data.id;
res1.data.paramskey = event.name;
imgList.push(res1.data);
const list = [...this.list, ...imgList];
this.$emit("value", list);
this.$emit("change", list);
this.$emit("upload", imgList);
} else {
wx.showToast({
icon: "none",
title: result.msg,
});
}
} else {
wx.showToast({
icon: "error",
title: "上传失败",
});
}
} catch (error) {
console.log(error)
}
uni.hideLoading();
this.$emit("upload", imgList);
},