必須再次求助於您的幫助!用在線目錄中的文件列表填充數組
我想在html-javascript中用在線目錄中的文件名填充數組。這甚至有可能嗎?
目錄是http://timeactivitydiary.comyr.com/DATA/所以我想在循環中返回
FilesArray[0] = "SampleDataset1";
FilesArray[1] = "SampleDataset2";
任何幫助,將不勝感激
必須再次求助於您的幫助!用在線目錄中的文件列表填充數組
我想在html-javascript中用在線目錄中的文件名填充數組。這甚至有可能嗎?
目錄是http://timeactivitydiary.comyr.com/DATA/所以我想在循環中返回
FilesArray[0] = "SampleDataset1";
FilesArray[1] = "SampleDataset2";
任何幫助,將不勝感激
如何jQuery的GET搶HTML文件名。
然後使用jquery find來獲取在該HTML中找到的所有鏈接元素(因爲apache中的未受保護的目錄是帶有A-tags作爲目錄文件的列表)。
最後取出的第一個項目,因爲這是父目錄鏈接
$.get('http://timeactivitydiary.comyr.com/DATA/ ', function(data) {
var $linkElements = $('a');
var FilesArray = $(data).find($linkElements);
FilesArray.shift();
});
我希望幫助。
您應該小心這一點,因爲它會將安全信息泄漏給所有用戶(即該目錄不受保護),並且如果正確的用戶發現這可能會導致他們詢問有關HOST服務器的更多問題。
務必花時間確保此服務器的安全。 Apache給出了一個關於最佳實踐的簡要文檔: http://httpd.apache.org/docs/2.2/misc/security_tips.html
或者,您可以創建GET請求調用的代理腳本,並且代理腳本可以返回文件夾內容,將其從客戶端移動到服務器端,邊檢查。這樣,沒有人會知道文件來自哪裏,或者該目錄不受保護。喜歡的東西:
$.getJSON('/proxy-script.php', function(data) {
//jquery code
});
和代理的script.php腳本:
<?php
//call file contents
$json = json_encode($files_in_folder);
echo $json;
}
內執行嗨,感謝您的幫助。我現在明白了爲什麼我無法在網上找到簡單的答案!可能會超出我的範圍,超出項目的範圍。無論如何,儘管 – user1929624
你可以做這樣的事情在純JS:
var xhr = new XMLHttpRequest();
xhr.open('GET', "http://timeactivitydiary.comyr.com/DATA/", false);
xhr.send();
var div = document.createElement("div");
div.innerHTML = xhr.responseText;
var lis = div.getElementsByTagName("ul")[0].getElementsByTagName("li")
var filenames = [];
for(var i = 0;i < lis.length;i++) {
filenames.push(lis[i].innerText ? lis[i].innerText : lis[i].innerContet);
}
//here you should have a list of all file names
基本上,AJAX在這裏使用。請注意,該示例被簡化了很多,並且不是跨瀏覽器的。只需在網絡上搜索如何執行跨瀏覽器的Ajax請求即可。另外,我的代碼使用同步ajax請求。只是爲了簡單。因爲你的界面在執行請求時會凍結。 (xhr.responseText
包含在瀏覽器中打開頁面時看到的HTML)。比我尋找ul
裏面的那個div和li
的裏面第一次發現ul
比剛剛通過LI
s和推入文件名的數組。
您可以使用jQuery或類似的庫來做同樣的事情,但即使純JS解決方案更復雜,我認爲最好在切換到某些庫之前知道純JS是如何工作的。
或者另一種選擇是使用某些服務器端語言(如PHP)在服務器上準備該數組。 在這種情況下,您將能夠關閉目錄列表並控制應向當前用戶顯示哪些文件。
嗨,感謝您的幫助。我現在明白了爲什麼我無法在網上找到簡單的答案!可能會超出我的範圍,超出項目的範圍。不過謝謝 – user1929624
JavaScript在哪裏執行? – Bergi
Javascript在客戶端機器上執行,因此無法訪問服務器的文件系統。 – George
它在html – user1929624