如何使用jQuery计算目录中的文件?

问题描述:

我想计算一个文件夹中的文件数量并返回该数字以在.js文件中设置一个变量。如何使用jQuery计算目录中的文件?

本质上,我有一个文件夹中的X数量的图像。当用户点击右箭头时,我用下一组8个图像替换现有的8个图像,等等。我目前手动输入变量(现在38)到页面中,因为文件夹中有38个缩略图。

该代码完美工作,但我讨厌每次添加文件时更改数字的想法。我想让它将变量设置为文件夹中图像的确切数量。

这可能使用JavaScript或jQuery?我是否需要编写一个PHP文件来为我返回这个变量?任何信息都会很棒!

+0

可能重复[访问Lo cal文件与jQuery](http://*.com/questions/6917910/accessing-local-files-with-jquery) – 2012-07-15 05:50:24

+0

更好的脚本服务器端信息(文件夹中的图像列表)与服务器端语言(PHP)。客户无法直接访问服务器上的文件系统。 – 2012-07-15 05:51:06

+0

这看起来与你的问题有关:http://*.com/questions/1266004/count-number-of-files-in-a-folder-through-javascript – avue 2012-07-15 05:51:19

这是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

我会做这样的

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

我觉得你至少应该提到这是不安全的,并且你应该确保在使用之前应该对dir变量进行消毒。 – 2012-07-15 06:18:40

+0

是的,但我认为这是一个给定的。当然,用户应该更改此代码以符合他/她的需求。 – 2012-07-15 06:20:13

如果必须使用客户端和文件编号,预加载文件和设置的数量,当你得到一个错误

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

只想说,我很欣赏JavaScript的客户端解决方案,即使它看起来像PHP是要走的路......所以,谢谢!拥有双方都很棒。 – bdrelling 2012-07-17 00:57:56

简单的方法:

<?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>