Limit the number of uploads in plupload
我的客户使用的是旧的 classipress 版本,这是我找到的 github 存储库,但他使用的是旧版本。运行最新的 WordPress 版本。自带plupload,有些旧版本,在主题里找不到版本。这里是 Functions.php,这里是 plupload。这是我页面的 html,无需查看,但我将其放在那里,因为该页面受到保护,如果您愿意,这是检查整个代码的唯一方法。
我想添加同时上传多张图片的功能,为此,我将其添加到functions.php
1 2 3 4 | add_filter('appthemes_plupload_config', 'enable_plupload_multisel', 10 ,1); function enable_plupload_multisel($app_plupload_config){ $app_plupload_config['plupload']['multi_selection'] = true; return $app_plupload_config; } |
但我不知道如何阻止用户上传超过 8 张图片?我尝试添加
放弃plupload后,我尝试使用Jquery,再次失败
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* prevent form submission if user selects more than 8 pics */ jQuery('#app-attachment-upload-pickfiles').change(function() { if (this.files.length > 8) { alert('Uploading more than 8 images is not allowed'); this.value = ''; } }); // Prevent submission if limit is exceeded. jQuery('#mainform').submit(function() { if (this.files.length > 8) { jQuery('#app-attachment-upload-pickfiles').hide(); jQuery('#step1').hide(); return false; } else { jQuery('#app-attachment-upload-pickfiles').show(); jQuery('#step1').show(); } }); |
编辑
我的 pluploadjs 在这里。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | attachUploader.bind('FilesAdded', function(up, files) { jQuery.each(files, function(i, file) { jQuery('#app-attachment-upload-filelist').append( '' + file.name + ' (' + plupload.formatSize(file.size) + ') ' + ''); window.appFileCount += 1; APP_Attachment.hideUploadBtn(); }); up.refresh(); attachUploader.start(); }); |
我把它修改成这样
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | attachUploader.bind('FilesAdded', function(up, files) { var maxfiles = 8; if(up.files.length > maxfiles ) { up.splice(maxfiles); alert('no more than '+maxfiles + ' file(s)'); } if (up.files.length === maxfiles) { $('#app-attachment-upload-filelist').hide("slow"); // provided there is only one #uploader_browse on page } jQuery.each(files, function(i, file) { jQuery('#app-attachment-upload-filelist').append( '' + file.name + ' (' + plupload.formatSize(file.size) + ') ' + ''); window.appFileCount += 1; APP_Attachment.hideUploadBtn(); }); up.refresh(); attachUploader.start(); }); |
就这些吗?现在能用吗?我没有测试它,因为它会给出错误
我不确定,但您的代码应该几乎可以工作。我认为您应该通过调用
也许试试这个代码:
1 2 3 4 5 6 7 8 9 10 | attachUploader.bind('FilesAdded', function(up, files) { var maxfiles = 8; // remove all new files after the max of files jQuery.each(up.files, function(i, file) { if(i > maxfiles){ up.removeFile(file); } }); }); |