首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery文件上传:用于拖放的单个文件上传

Jquery文件上传:用于拖放的单个文件上传
EN

Stack Overflow用户
提问于 2014-05-21 16:38:23
回答 3查看 3.2K关注 0票数 0

我正在使用Jquery文件上传扩展(https://github.com/blueimp/jQuery-File-Upload/)在我的网站上做上传系统。

问题是,我不想让用户通过拖放区上传多个文件,有没有办法限制它,只允许单个文件上传?我发现按钮只有这样的限制,在wiki中没有关于单拖放上载的信息。

EN

回答 3

Stack Overflow用户

发布于 2014-05-21 16:41:23

查看他们的文档,答案就在那里:

请注意,用户仍然可以拖放多个文件。要强制执行一个文件上载限制,您可以使用maxNumberOfFiles选项(请参见Options)。

票数 0
EN

Stack Overflow用户

发布于 2014-05-21 16:42:35

您需要将jquery.fileupload.validate.js添加到您的站点。然后,将考虑maxNumberOfFiles属性。

您可以将其设置为1。

代码语言:javascript
复制
$('.something').fileupload({
    dropZone          : $('.your-dropzone'),
    url               : 'http://...',
    dataType          : 'json',
    maxNumberOfFiles  : 1
});
票数 0
EN

Stack Overflow用户

发布于 2017-08-05 08:04:41

复活这个问题是因为我找到了解决这个问题的办法,我需要自己去做……

正如DazVolt指出的那样,jquery.fileupload-ui.js中的maxNumberOfFiles值适用于会话中上传的所有文件,而不仅仅是特定的上传,因为jquery.fileupload-ui.js中的这个函数基本上计算UI中已处理(即已经上传)的表行的数量,然后将其与maxNumberOfFiles进行比较:

代码语言:javascript
复制
getNumberOfFiles: function () {
                return this.filesContainer.children()
                    .not('.processing').length;
            },

不过令人高兴的是,getNumberOfFiles的这个定义是可以改变的。

为了让它在每次上传时都能工作,也就是说,每次上传只能有一个文件,但上传的次数和你喜欢的一样多,我这样做了:

  1. 在下载模板中,我为表行的模板添加了一个类'previouslyUploaded‘:

{% for (var i=0, file; file=o.files[i]; i++) { %} <tr class="template-download fade previouslyUploaded">

  • Before我定义了fileupload对象,我创建了一个新函数供getNumberOfFiles调用,该函数计算表行数,但忽略那些已经上传的行,即那些由下载模板中的条目表示的行:

var perUploadRestriction = max_file_upload () { // previouslyUploaded是在template-download //中添加的一个类,这里的查询表示之前上传的文件不计入max_file_upload限制//只计算当前上传准备中的文件返回{

  • };然后我在fileupload对象定义中使用这个函数,如下所示:

$(this).fileupload({ dropZone:$(this),processQueue:{dropZone:'validate',//acceptFileTypes:*您文件类型的正则表达式对象*,maxFileSize: 5000000,maxNumberOfFiles: 1,},getNumberOfFiles: perUploadRestriction,});

现在,如果我拖放多个文件到dropzone,我会收到一条错误消息,但在成功上传之后,我仍然可以在相同的限制下进行更多的上传。

这是一个小技巧,但对我来说是可行的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23778084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档