您如何读取 PC 上的本地文件并在 javascript 中不断更新?

How do you read a local file on your PC and update it constantly in javascript?

因此,我制作了一个 java 程序,它运行 IPs 列表,对它们执行 ping 操作,并更新有关设备状态的文件。我想知道如何将文件打开到 webpage 中并更新它,这样用户就可以打开网页并只看到文件中的数据列表,他们不必 select归档或刷新页面。

这对 javascript/html 可行吗?

这是我目前使用的代码:

    <html>
    <head>
    <title>Import Data</title>
    <script>

        var openFile = function() {
            var input = event.target;

            var reader = new FileReader();
            reader.onload = function() {
                var text = reader.result;
                var node = document.getElementById('output');
                node.innerText = text;
                console.log(reader.result.substring(0,200));
            };

            reader.readAsText(input.files[0]);
            setTimeout(openFile(),1000);
        };
    </script>
    </head>
    <body>
    <input type='file' accept='text/plain' onchange='openFile()'><br>
    <div id='output'>
    </body>
    </html>

但我似乎无法找到在哪里硬编码文件的路径。当我使用此手动 selection 方法时,它会更新一次,无论文件中的元素增加还是减少。

编辑:

我已经缩小到需要上传文件的位置:

    <html>
       <head>
       <title></title>
       <script>
       function uploadFile() {
           var reader = new FileReader();
           reader.onload = function(event) {
              var contents = event.target.result;
              console.log("File contents: " + contents);
           };

           reader.onerror = function(event) {
              console.error("File could not be read! Code: " + event.target.error.code);
           };

           var fileInputElement = document.getElementById("FileName");
           reader.readAsText(fileInputElement.files[0]);
           console.log(fileInputElement.files[0]);
        }
        </script>
        </head>
        <body>
        <input type='file' accept='text/plain' value='RESULTS.txt' id='FileName' onchange='uploadFile()' style="display:none;">
        </body>
     </html>

如果我尝试在字符串中键入一个文件路径,它会抱怨它不是类型 'blob'。我这样做的时候,需要用户输入文件名,但是显然是看不到的。我怎样才能使 'file' 变量成为静态变量,以便它始终在不提示用户的情况下打开该文件?

进行更多研究后,您无法从本地计算机访问文件的原因是出于安全原因。

所以,代替所有这些,我编写了一些代码来不断加载所选文件,以便您可以在它发生变化时看到它:

<html>
<head>
<title>Import Data</title>
<script>
var input;

    var openFile = function() {

        var reader = new FileReader(event);
        reader.onload = function() {
            var text = reader.result;
            var node = document.getElementById('output');
            node.innerText = text;
            console.log(reader.result.substring(0,200));
        };

        reader.readAsText(input.files[0]);
        setTimeout(openFile,1000);
    };
</script>
</head>
<body>
<input type='file' accept='text/plain' onchange='input = event.target; openFile(event);'><br>
<div id='output'>
</body>
</html>