在使用Taro
开发钉钉小程序,做到本地直传OSS
遇到了这样一个问题,使用 Taro.UploadFile()
图片给到OSS
报 {error: 11, message: '无效请求参数'}
,经过大量的踩坑后面查阅钉钉文档时发现,dd.uploadFile()
需要添加一个fileType: 'image'
作为标识,表明上传的文件类型fileType
,下面是真实示例,提供参考。
Taro.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'],
success: async function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
let tempFilePaths = res.tempFilePaths[0]`在这里插入代码片`
dd.uploadFile({
url: ossData && ossData.host,
filePath: tempFilePaths,
fileName: 'file',
fileType: 'image',
formData: {
key: ossData && ossData.dir,
policy: ossData && ossData.policy,
OSSAccessKeyId: ossData && ossData.accessid,
signature: ossData && ossData.signature,
success_action_status: '200'
// 'x-oss-security-token': ossRes.data.stsToken
},
header: {
'content-type': 'multipart/form-data',
},
success (loginRes){
const data = loginRes
console.log("upload", data);
//do something
}
})
.catch((err) => {
console.log('upload', err)
})
}
})
上传成功,下班!