2017-06-04 56 views
0

我正在创建一个脚本来上传XML文件到服务器,在这里您输入文件中出现特定标签的频率。现在我想自动执行此操作,以便检查上载的XML文件,以便以前手动输入的字段自动填充。检查通过php上载到服务器的XML文档

我只是没有明白我如何获得文件的内容实际上传它 - 我想用Javascript来检查和自动填充。

上传完全用php实现。

有人对我有一个想法吗?

编辑:

var fileInput; 

window.onload = function() { 
    fileInput = document.getElementById('file_input'); 
}; 

function getNodes() { 
    var anzNodes = fileInput.getElementsByTagName("node").length; 
    return anzNodes; 
} 

function getEdges() { 
    var anzEdges = fileInput.getElementsByTagName("edge").length; 
    return anzEdges; 
} 

function fillForm() { 
    document.getElementById("nodes").value = getNodes(); 
    document.getElementById("edges").value = getEdges(); 
} 

所以我有一个HTML的形式与ID file_input。我尝试抓取该文件(这是XML)上传,搜索它的“节点”和“边缘”标签的数量,并自动填充这些信息到HTML表单。这应该发生在选择文件时。这是否更好?

+0

你的问题我也不清楚。但是,如果您想在JavaScript字段中自动填充某些数据。您需要将相同的数据初始存储在数据库中或作为cookie。 第二次,当您尝试上传时,请根据一些标准提取相同的数据并加载它们。 –

+0

问题太广泛了。提供例子以及更简明的目标解释 – charlietfl

回答

0

我找到了答案,并会提供它的完整性。

我的JavaScript部分:

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

    reader.onload = function() { 
     var anzEdges = (reader.result.match(/<edge/g) || []).length; 
     var anzNodes = (reader.result.match(/<node/g) || []).length; 
     document.getElementById("nodes").value = anzNodes; 
     document.getElementById("edges").value = anzEdges; 
    }; 
    reader.readAsText(input.files[0]); 
}; 

和相关的HTML代码:

<input type="file" onchange="openFile(event)" name="file_upload" size="60"><br> 
<input type="number" id="nodes" name="nodes" min="2" readonly><br> 
<input type="number" id="edges" name="edges" min="1" readonly> 
0

使用JavaScript中的FileReader功能在上传文档之前抓取文档。然后,您可以读取文件的文本并在将其发送到服务器之前对其进行预处理。

相关问题