1

目前我正在使用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 照片的库吗?也许没有加载,至少转换为另一种格式,这样我就可以显示预览

4

0 回答 0