首页 > 解决方案 > 如何限制 PLUpload 中的总文件大小

问题描述

我正在使用 PLUpload UI Widget,下面是代码

$(function() {
    $("#uploader").plupload({
        runtimes : 'html5,flash,silverlight,html4',
        url : "/examples/upload",
        max_file_size : '20mb', 
        chunk_size: '1mb',
 
        resize : {
            width : 200,
            height : 200,
            quality : 90,
            crop: true // crop to exact dimensions
        },
 
        filters : [
            {title : "Image files", extensions : "jpg,gif,png"}
        ],
 
        rename: true,       
        sortable: true,
        dragdrop: true,
        views: {
            list: true,
            thumbs: true, // Show thumbs
            active: 'thumbs'
        },
       flash_swf_url : '/plupload/js/Moxie.swf',   
        silverlight_xap_url : '/plupload/js/Moxie.xap'
    });
});

我想允许用户一起上传不超过 18mb 的文件。因此,现在如果有人选择大于 15mb 或小于 18mb 的文件,则此代码运行良好,但当用户选择 2 个 15mb-4mb 的文件时,总大小为 19mb,这不会显示任何错误。

我看到 QueueWidget(plqueueupload) 的解决方案很少,但没有找到 UIWidget (plupload) 的任何解决方案

有内置选项可以限制单个文件的大小和文件数量。我们如何限制所有文件的大小?

标签: plupload

解决方案


我在浏览 PUUpload 文档后找到了答案,添加这个只是为了帮助其他人寻找这个。

在我们选择每个文件并且我们可以验证之后调用的“选定”事件。

selected: function(uploader, files) {
    if(files.files.length > 0) {
       for(var i=0;i<files.files.length;i++) {
           maxsize += files.files[i].size;
       }
       if(maxsize > 18874368) {
          //add your logic to show error message
          $("#fileUploader").plupload("notify", "error", "Files size exceeded 18MB");
      }
}

推荐阅读