我正在尝试获取文件夹中的文件数量并将其与maxfiles进行比较
我在dropzone.js中有功能
Dropzone.prototype._updateMaxFilesReachedClass = function() {
if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {
if (this.getAcceptedFiles().length === this.options.maxFiles) {
this.emit('maxfilesreached', this.files);
}
return this.element.classList.add("dz-max-files-reached");
} else {
return this.element.classList.remove("dz-max-files-reached");
}
};
我想将文件数改为this.getAcceptedFiles().length
我试过这个:
$.get('handler.php?action=count' , function(data) {return data;}) === maxFiles)
但如果可能,我不知道如何返回号码。
文件handler.php?action=count
返回号码,但我知道如何获取此号码并使用dropzone功能。
答案 0 :(得分:1)
我以前使用php来获取文件和文件夹的数量,但我发现ajax能够做到这一点。
当我向服务器上的某个文件夹发送jquery get请求时,这是来自真实项目的典型响应
请求:强>
$.ajax({
url: "projects/"+current_project+"/img/"
})
<强>响应强>
"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /dumar/projects/dumar/img</title>
</head>
<body>
<h1>Index of /dumar/projects/dumar/img</h1>
<table>
<tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
<tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/dumar/projects/dumar/">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar1.jpg">dumar1.jpg</a> </td><td align="right">2015-01-21 01:04 </td><td align="right">174K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar2.jpg">dumar2.jpg</a> </td><td align="right">2015-01-21 01:05 </td><td align="right">177K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar3.jpg">dumar3.jpg</a> </td><td align="right">2015-01-21 01:06 </td><td align="right">117K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar4.jpg">dumar4.jpg</a> </td><td align="right">2015-01-21 01:06 </td><td align="right">110K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar5.jpg">dumar5.jpg</a> </td><td align="right">2015-01-21 01:19 </td><td align="right">118K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar6.jpg">dumar6.jpg</a> </td><td align="right">2015-01-21 01:19 </td><td align="right">127K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar7.jpg">dumar7.jpg</a> </td><td align="right">2015-01-21 01:20 </td><td align="right">137K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar8.jpg">dumar8.jpg</a> </td><td align="right">2015-01-21 01:20 </td><td align="right">121K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar9.jpg">dumar9.jpg</a> </td><td align="right">2015-01-21 01:39 </td><td align="right"> 88K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar10.jpg">dumar10.jpg</a> </td><td align="right">2015-01-21 01:34 </td><td align="right"> 79K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar11.jpg">dumar11.jpg</a> </td><td align="right">2015-01-21 01:35 </td><td align="right"> 78K</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="dumar12.jpg">dumar12.jpg</a> </td><td align="right">2015-01-21 01:38 </td><td align="right"> 75K</td><td> </td></tr>
<tr><th colspan="5"><hr></th></tr>
</table>
<address>Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.5.15 Server at 127.0.0.1 Port 80</address>
</body></html>
如果你解析这个html,你会发现它看起来像一个文件浏览器
前两个表行是表头和水平分隔符,而最后一个表行是水平分隔符。
如果你有任何html页面,你可以简单地计算行数并对你的html进行维护。
为了便于说明,我使用此脚本来计算该目录中的文件(仅限文件):
$.ajax({
url: "projects/"+current_project+"/img/"
})
.done(function( data ) {
$(".project-gallery-thumbs").empty();
$(data).find("tbody tr a").each(function(i){
if(i>=5)
{
$(".project-gallery-thumbs").append("<div class='thumb-item' style='background-image:url( projects/"+current_project+"/img/"+$(this).text()+")' data-thumb='"+$(this).text()+"'></div>")
}
});
<强>解决方案:强>
在你的情况下你可以使用相同的算法,但是从第四个开始计算链接(忽略表头链接),例如:
$.ajax({
url: "your folder here"
})
.done(function( data ) {
$(data).find("tbody tr a").each(function(i){
if(i>=4)
{
//this will iterate all folders and files found there
}
});