Estoy leyendo un archivo en la aplicación de Android con:
<ion-input type="file" (change)="readFile($event)"></ion-input> Obtengo un objeto de file y puedo saber el tipo de archivo comprobando la propiedad de type .
Pero algunos archivos tienen propiedades de type vacío, como puede ver en la siguiente captura de pantalla:
¿Cómo puedo saber el tipo de archivo si tiene una propiedad de type vacío y no tiene extensión?
Tuve este problema hace un tiempo, cuando usaba una máquina con Windows.
Se solucionó el problema después de esta respuesta .
Para citar: "Como esperaba, el problema es específico del sistema donde falta el tipo de contenido para el tipo .csv en el Registro (HKEY_CLASSES_ROOT.csv)".
Una solución que encuentro es convertirlo a base64, por ejemplo con este código:
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); }); }el retorno se verá así:
'data:application/octet-stream;base64,T2dnUwACAAAAAAAAAAAAAAAAAAAAACqCBoIBE09wdXNIZWFkAQFoAIA+AAAAAABPZ2dTAAAAAAAAAAA ... Como puede ver, después data: obtenemos el type . En este caso application/octet-stream