我正在构建一个Web界面,允许用户上传自定义字体。问题是我无法通过FileReader.readAsDataUrl()将字体文件(特别是.ttf、.woff和.woff2文件)转换为base64,以便我可以通过API将这些文件PUT上去。
我可以成功地读取.png和.jpg文件,并接收这些文件的数据作为base64编码字符串,没有任何问题。然而,当我尝试使用.ttf、.woff或.woff2文件进行相同的操作时,reader.result为空,尽管FileReader没有抛出任何错误。
我正在使用输入元素允许用户选择字体:
handleUpload函数如下:
这是我传递给readAsDataURL函数的文件对象。
我可以成功地读取.png和.jpg文件,并接收这些文件的数据作为base64编码字符串,没有任何问题。然而,当我尝试使用.ttf、.woff或.woff2文件进行相同的操作时,reader.result为空,尽管FileReader没有抛出任何错误。
我正在使用输入元素允许用户选择字体:
<input type="file" accept="application/font-woff" onChange={handleUpload}/>
handleUpload函数如下:
handleUpload: () => (event: Object) => {
const { currentTarget: element } = event;
if (!element.files) { return; }
const file = element.files[0];
const reader = new FileReader();
reader.onerror = (error) => {
console.error('Error: ', error);
};
reader.readAsDataURL(file);
console.log(reader.result); // reader.result is empty
}
这是我传递给readAsDataURL函数的文件对象。
这个。