2012-07-15 46 views
0

我想計算一個文件夾中的文件數量並返回該數字以在.js文件中設置一個變量。如何使用jQuery計算目錄中的文件?

本質上,我有一個文件夾中的X數量的圖像。當用戶點擊右箭頭時,我用下一組8個圖像替換現有的8個圖像,等等。我目前手動輸入變量(現在38)到頁面中,因爲文件夾中有38個縮略圖。

該代碼完美工作,但我討厭每次添加文件時更改數字的想法。我想讓它將變量設置爲文件夾中圖像的確切數量。

這可能使用JavaScript或jQuery?我是否需要編寫一個PHP文件來爲我返回這個變量?任何信息都會很棒!

+0

可能重複[訪問Lo cal文件與jQuery](http://stackoverflow.com/questions/6917910/accessing-local-files-with-jquery) – 2012-07-15 05:50:24

+0

更好的腳本服務器端信息(文件夾中的圖像列表)與服務器端語言(PHP)。客戶無法直接訪問服務器上的文件系統。 – 2012-07-15 05:51:06

+0

這看起來與你的問題有關:http://stackoverflow.com/questions/1266004/count-number-of-files-in-a-folder-through-javascript – avue 2012-07-15 05:51:19

回答

7

這是PHP更適合的任務,讓您的Javascript到客戶端。寫一個非常簡單的PHP腳本來計算文件夾中的文件

echo iterator_count(new DirectoryIterator('/home/path/dir')); 

並從您的JQuery腳本中調用它。

$.get('numberoffiles.php', function(data) { 
    alert(data); 
}); 
+0

你是一個國王的男人(Y) – 2015-03-15 09:44:06

0

我會做這樣的

echo count(glob("{$_GET['dir']}/*.*")); 
+0

我覺得你至少應該提到這是不安全的,並且你應該確保在使用之前應該對dir變量進行消毒。 – 2012-07-15 06:18:40

+0

是的,但我認爲這是一個給定的。當然,用戶應該更改此代碼以符合他/她的需求。 – 2012-07-15 06:20:13

2

如果必須使用客戶端和文件編號,預加載文件和設置的數量,當你得到一個錯誤

... 
Img = new Image(); 
Img.onerror=function() { 
    maxImages=cnt-1; 
} 
Img.src = "image_"+cnt+".jpg"; 
+1

只想說,我很欣賞JavaScript的客戶端解決方案,即使它看起來像PHP是要走的路......所以,謝謝!擁有雙方都很棒。 – bdrelling 2012-07-17 00:57:56

2

簡單的方法:

<?php 
    $dir = "images"; 
    $file_count = count(glob("{$dir}/*.*")); 
?> 
<html> 
<head> 
<title>Welcome</title> 
</head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 

    var dir = <?php echo $dir ?>; 
    var file_count = <?php echo $file_count ?>; 

    $('#msg').html('File count in folder ' + dir + ' is ' + file_count); 
}); 
</script> 
<body> 
<div id="msg"></div> 
</body> 
</html> 
相關問題