当 type 属性为空时如何知道文件对象中的文件类型

问题描述 投票:0回答:2

我正在 Android 应用程序中读取文件:

<ion-input type="file" (change)="readFile($event)"></ion-input>

我得到一个

file
对象,我可以通过检查
type
属性来了解文件类型。

但有些文件的

type
属性为空,如以下屏幕截图所示:

如果文件的

type
属性为空并且没有扩展名,我如何知道文件类型?

javascript angular file ionic-framework
2个回答
0
投票

我不久前在使用 Windows 机器时遇到过这个问题。
修复了此答案之后的问题。

引用:“正如我所期望的,问题是系统特定的,其中注册表 (HKEY_CLASSES_ROOT.csv) 下缺少 .csv 类型的内容类型。”


0
投票

我找到的一个解决方案是将其转换为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

© www.soinside.com 2019 - 2024. All rights reserved.