【问题标题】:How do I count files in a directory using jQuery?如何使用 jQuery 计算目录中的文件?
【发布时间】:2012-07-15 05:47:06
【问题描述】:

我想计算文件夹中的文件数,然后返回该数字以在 .js 文件中设置变量。

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

代码运行良好,但我讨厌每次添加文件时都更改数字的想法。我想让它把变量设置为文件夹中图像的确切数量。

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

【问题讨论】:

标签: php javascript jquery


【解决方案1】:

这是 PHP 更适合的任务,将 Javascript 保留在客户端。编写一个非常简单的 PHP 脚本,统计文件夹中的文件数

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

并从您的 JQuery 脚本中调用它。

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

【讨论】:

  • 返回 [number_of_files + 2] 因为 [./] 和 [../] 也被计算在内
【解决方案2】:

如果你必须使用客户端并且文件被编号,请预加载文件并在遇到错误时设置编号

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

【讨论】:

  • 只是想说,我很欣赏使用 JavaScript 的客户端解决方案,尽管看起来 PHP 是要走的路……所以,谢谢!拥有光谱的双方真是太好了。
【解决方案3】:

简单的方法:

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

【讨论】:

    【解决方案4】:

    我会这样做

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

    【讨论】:

    • 我觉得您至少应该提到这是不安全的,并且您应该确保在使用之前对 dir 变量进行清理。
    • 是的,但我认为这是给定的。当然,用户应该更改此代码以满足他/她的需要。
    猜你喜欢
    • 2011-02-07
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2010-10-15
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多