2017-06-04 59 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功能在上傳文檔之前抓取文檔。然後,您可以讀取文件的文本並在將其發送到服務器之前對其進行預處理。

相關問題