如何限制整体文件大小?

时间:2014-08-13 14:14:27

标签: jquery fine-uploader

我找到了一个设置为单个文件设置限制的设置

validation: {
    sizeLimit: 51200 // 50 kB = 50 * 1024 bytes
}

如何实施验证如下:任何号码都可以上传到服务器,但总数必须少于5mb?

3 个答案:

答案 0 :(得分:2)

最好的方法是使用onValidate callback。在那里,您可以保持所有提交文件大小的运行总计。达到最大值后,您可以开始拒绝文件。例如:

var totalAllowedSize = 5000000,
    totalSizeSoFar = 0;

callbacks: {
    onValidate: function(data) {
        if (totalSizeSoFar + data.size > totalAllowedSize) {
            return false;
        }
        totalSizeSoFar += data.size;
    }
}

答案 1 :(得分:0)

只想与jquery包装器分享'fineuploader'的最终解决方案。

 var totalAllowedSize = 10 * 1024 * 1024;
 var totalSizeSoFar = 0;
 var fuUrl = '[endpoint]';

$('#jquery-wrapped-fine-uploader').fineUploader({
            request: {
                endpoint: fuUrl
            }               
        }).on('complete', function (event, id, name, response) {
            __doPostBack('<%=btnUpdateClientAttachments.ClientID%>', null);
        }).on("validate", function (event, obj) {                
            var fSize = obj[0].size;               
            if (totalSizeSoFar + fSize > totalAllowedSize) {
                alert("Attachments attached to your email are over 10mb, please add link to your attachments instead");
                return false;
            }
            totalSizeSoFar += fSize;                
        });

PS再次感谢Ray的想法

答案 2 :(得分:-3)

我不认为上传者有这个选择(我不会使用它)。如果您使用的是php,则可以在php.ini文件中设置最大POST大小。 link

为什么在你可以轻松创建自己的并控制一切时使用fin uploader?我是唯一想控制一切的人吗?