Дело в том, выход из функции main происходит раньше, чем отработает загрузка файла. После этого происходит "отправка" формы. Так как action не указан, то просто происходит перезагрузка страницы.
Нужно ev.preventDefault() или return false в main.
У меня нет ИЕ сейчас, но вот так все работает до new ActiveXObject("Scripting.FileSystemObject");
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<script>
function WriteFile(fileObj) {
const filePath = "C:\\__WORK\\";
// const fileName = "doc.txt";
console.log("write file");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var filename = filePath + fileObj.name;
var FilePointer = fso.OpenTextFile(filename, 8, true);
FilePointer.Write( fileObj.data );
FilePointer.Close();
};
function send(filename, docid, keyname, storename) {
var url = "http://127.0.0.1/test?"+
"filename="+encodeURIComponent(filename);
window.open(url, "_blank");
}
function main(ev) {
var selectedFile = document.getElementById('inputfile').files[0];
var writerFunc = WriteFile;
var sendFunc = send;
ev.preventDefault()
const reader = new FileReader();
reader.onload = function() {
var file = new Object();
file.name = selectedFile.name;
file.data = reader.result;
writerFunc(file);
sendFunc(file.name);
};
reader.readAsArrayBuffer(selectedFile);
};
document.addEventListener('DOMContentLoaded', () => {
document.querySelector('form').addEventListener('submit', main)
})
</script>
</head>
<body>
<form>
<div><input type="file" id="inputfile"></div>
<br/>
<div>DocId: <input type="text" id="docid" size="100"></div>
<br/>
<div><input type="submit" value="Send"></div>
</form>
<div id="result"></div>
</body>
</html>