|
|
|
// Ref : https://stackoverflow.com/a/12002275
|
|
|
|
|
|
|
|
// Tested in Mozilla Firefox browser, Chrome
|
|
|
|
function ReadFileAllBrowsers(FileElement, CallBackFunction) {
|
|
|
|
try {
|
|
|
|
if (!FileElement.files || !FileElement.files.length) { return CallBackFunction() }
|
|
|
|
|
|
|
|
const file = FileElement.files[0]
|
|
|
|
|
|
|
|
if (file) {
|
|
|
|
const reader = new FileReader()
|
|
|
|
reader.readAsText(file, 'UTF-8')
|
|
|
|
reader.onload = function(evt) {
|
|
|
|
CallBackFunction(evt.target.result)
|
|
|
|
}
|
|
|
|
reader.onerror = function(evt) {
|
|
|
|
CallBackFunction()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception) {
|
|
|
|
const fallBack = ieReadFile(FileElement.value)
|
|
|
|
// eslint-disable-next-line eqeqeq
|
|
|
|
if (fallBack != false) {
|
|
|
|
CallBackFunction(fallBack)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Reading files with Internet Explorer
|
|
|
|
function ieReadFile(filename) {
|
|
|
|
try {
|
|
|
|
// eslint-disable-next-line no-undef
|
|
|
|
const fso = new ActiveXObject('Scripting.FileSystemObject')
|
|
|
|
const fh = fso.OpenTextFile(filename, 1)
|
|
|
|
const contents = fh.ReadAll()
|
|
|
|
fh.Close()
|
|
|
|
return contents
|
|
|
|
} catch (Exception) {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default ReadFileAllBrowsers
|