我想知道在一定数量的上传后如何限制用户上传.. 我希望用户不要上传超过20个文件。之后我需要上传才能禁用。
如果他再次清除上传,则需要重新启用。
截至目前,我们有“queueSizeLimit”,以便他可以将文件max上传到queueSizeLimit。
这是我的代码:
<script type="text/javascript">
$('#file_upload').uploadify({
'uploader': 'js/uploadify.swf',
'script': 'UploadVB.ashx',
'cancelImg': 'images/cancel.png',
'folder': '/uploads',
'queueSizeLimit':20,
'multi': true,
'auto': true,
'onQueueFull': function (event, queueSizeLimit) {
alert("I'm stuffed, please don't put anymore files in me!");
return false;
},
'onComplete': function (event, ID, fileObj, response, data) {
$("#thumbnail").append(response + ' ')
}
});
</script>
答案 0 :(得分:0)
由于重新加载页面后uploadify队列再次为空,您可能需要考虑使用Cookie在本地存储用户已上载的文件数量。在初始化uploadify之前,您需要检查用户已完成的上传量。如果未设置Cookie或Number为0,则可以毫无问题地初始化uploadify。如果Number> 0但是<20,则必须调整uploadify的queueSizeLimit以确保用户不上传超过20个文件。如果该数字>&gt; = 20,则您甚至不会初始化uploadify。
uploadify的Oncomplete功能必须将刚刚上传的文件数添加到cookie编号中。
这不是万无一失的方法,但它很容易实现。你可以使用一个jQuery cookie插件。 https://github.com/carhartl/jquery-cookie
如果您确实希望确保每个用户最多可以上传20个文件,则必须使用服务器端脚本执行此操作。
编辑:最后,你得到这样的东西。请注意,这是伪代码而不是实际的javascript。
uploadedFiles = cookie.get(cookieName);
maxFiles = 20 - uploadedFiles;
if (maxFiles <= 0) { doNothing(); } // already 20 uploads or more
else {
$('#file_upload').uploadify({
// ...
'queueSizeLimit': maxFiles, // if uploadedFiles is 5, maxFiles is 15 etc
// ...
'onComplete': function (...) {
myNumber++;
cookie.set(cookieName, uploadedFiles); // Count up number and save it in the cookie
}
});
}