Joh*_*hnO 24 javascript plupload
我没有看到plupload API文档中有关限制上传文件数量的选项,任何数字,甚至1.
Doc失败了吗?或功能失败?如果它不存在,我会努力让这种情况发生,如果有人需要它..
Jon*_*ter 20
这是一个功能失败.我围绕jQuery API创建了一个包装器,这就是我为使它工作所做的.我的代码做了一些其他业务逻辑,但它应该足以让你设置启动.
基本上,绑定到FilesAdded事件并调用removeFile上传器对象(如果文件太多).我想我添加了50ms超时,因为它给我带来了尚未存在的文件的问题.
uploader.bind('FilesAdded', function (up, files) {
var i = up.files.length,
maxCountError = false;
plupload.each(files, function (file) {
if(uploader.settings.max_file_count && i >= uploader.settings.max_file_count){
maxCountError = true;
setTimeout(function(){ up.removeFile(file); }, 50);
}else{
// Code to add pending file details, if you want
}
i++;
});
if(maxCountError){
// Too many files uploaded, do something
}
});
Run Code Online (Sandbox Code Playgroud)
max_file_count 是我在创建它时添加到pluploader实例的东西.
编辑:我实际上必须为此做两种不同的方式.以上只允许一个人上传一定数量的文件(否则会产生错误).
此代码段的工作方式类似 - 但会删除现有文件并仅上传最新的文件:
uploader.bind('FilesAdded', function (up, files) {
var fileCount = up.files.length,
i = 0,
ids = $.map(up.files, function (item) { return item.id; });
for (i = 0; i < fileCount; i++) {
uploader.removeFile(uploader.getFile(ids[i]));
}
// Do something with file details
});
Run Code Online (Sandbox Code Playgroud)
oct*_*ccl 20
其他方法:
$(document).ready(function () {
var uploader = new plupload.Uploader({
...
multi_selection: false,
....
});
Run Code Online (Sandbox Code Playgroud)
问候
小智 13
基于Jonathon Bolster的第二个答案,我编写了这个更简单的片段来限制上传到最后选择的文件:
uploader.bind('FilesAdded', function(up, files) {
while (up.files.length > 1) {
up.removeFile(up.files[0]);
}
});
Run Code Online (Sandbox Code Playgroud)
你可以使用这个 max_file_count: 5,其中5是最大上传次数.
| 归档时间: |
|
| 查看次数: |
20194 次 |
| 最近记录: |