您如何读取 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>
因此,我制作了一个 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>