【发布时间】:2023-03-06 17:44:01
【问题描述】:
我正在使用以下功能将图像上传到 zendesk。 Zendesk 要求上传二进制图像,并且当我在 Firebase 上上传时,获取 blob 图像方法有效。这些函数得到响应 201 但当您检查图像时,它只是一个白色方块。我认为图片在上传过程中损坏了。
imageUri 从 expo-image-picker 返回,如下所示:
文件:/data/user/0/host.exp.exponent/cache/ExperienceData/.../ImagePicker/8543faa5-b996-46cd-9554-ce9afb61385b.jpg
const uploadImages = async (imageUri) => {
try {
const filename = getFilenameFromImagePicker(imageUri);
const resImg = await fetch(imageUri);
const blobImg = await resImg.blob();
const response = await axios.post(`uploads?filename=${filename}`, {
blobImg
}, {
auth: {
username: membersEmail + '/token',
password: ZENDESK_API_KEY
},
headers: {
'Content-Type': 'application/binary',
}
})
return response.data;
}
catch (error) {
captureException(error);
return null;
}
}
将图像更改为二进制以便上传到 zendesk 的最佳方法是什么?
以下是 Zendesk 上传图片的文档中的 curl 语句
curl "https://{subdomain}.zendesk.com/api/v2/uploads?filename=myfile.dat&token={optional_token}" \
-data-binary @file.dat \
-v -u {email_address}:{password} \
-H "Content-Type: application/binary" \
-X POST
【问题讨论】:
标签: react-native expo zendesk-api