我正在 Android 应用程序中读取文件:
<ion-input type="file" (change)="readFile($event)"></ion-input>
我得到一个
file
对象,我可以通过检查 type
属性来了解文件类型。
但有些文件的
type
属性为空,如以下屏幕截图所示:
如果文件的
type
属性为空并且没有扩展名,我如何知道文件类型?
我不久前在使用 Windows 机器时遇到过这个问题。
修复了此答案之后的问题。
引用:“正如我所期望的,问题是系统特定的,其中注册表 (HKEY_CLASSES_ROOT.csv) 下缺少 .csv 类型的内容类型。”
我找到的一个解决方案是将其转换为base64,例如使用以下代码:
getBase64(file)
{
return new Promise((resolve, reject) =>
{
const reader = this.getFileReader();// this function is important for real devices. Without it the fielReader.onload will not be triggered in read device
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
返回结果将如下所示:
'data:application/octet-stream;base64,T2dnUwACAAAAAAAAAAAAAAAAAAAAACqCBoIBE09wdXNIZWFkAQFoAIA+AAAAAABPZ2dTAAAAAAAAAAA ...
如您所见,在
data:
之后我们得到了type
。在这种情况下application/octet-stream