目前我正在使用antd提供的上传文件组件
另外我正在使用一个库来将 HEIC 转换为 JPG ......这个库被称为 heic2any,事实上工作得很好,基本上,它实现了它的目标,这是我使用的代码
到目前为止,这是我的代码:
const handleChange = (info) => {
setLoading(true);
setimageUrl(null);
if (info.file.originFileObj.type === "") {
fetch(URL.createObjectURL(info.file.originFileObj))
.then((res) => res.blob())
.then((blob) => heic2any({ blob, toType: "image/jpeg" }))
.then((conversionResult) => {
console.log("HEIC");
setimageUrl(URL.createObjectURL(conversionResult));
setLoading(false);
})
.catch((e) => {
console.log("error");
setLoading(false);
});
} else {
setLoading(false);
setimageUrl(URL.createObjectURL(info.file.originFileObj));
}
};
我的问题发生在 HEIF 文件到达的那一刻...因为库不接受该格式,它只允许 HEIC ...但是会发生什么我也无法知道正在上传什么类型的文件以避免失败,因为为什么,当我要求 HEIF 或 HEiC 类型的照片时,这些是输入给我的数据: TYPE HEIF
类型 HEIC
对于这些情况,我可以识别正在加载的文件类型,所以我无法验证它......在这种情况下我能做什么?你知道任何允许我上传 HEIC 和 HEIF 照片的库吗?也许没有加载,至少转换为另一种格式,这样我就可以显示预览