Jquery 如何限制文件的总大小?

Jquery 如何限制文件的总大小?,jquery,fine-uploader,Jquery,Fine Uploader,我找到了一个为单个文件设置限制的设置 validation: { sizeLimit: 51200 // 50 kB = 50 * 1024 bytes } 如何实现如下验证:任何数字都可以上传到服务器,但总计必须小于5mb?我认为fine uploader没有这个选项(我不使用它)。如果您使用的是php,那么可以在php.ini文件中设置最大POST大小 既然你可以很容易地创建自己的并控制一切,为什么还要使用FinUploader呢?我是唯一一个想要控制一切的人吗?我认为fine u

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

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

如何实现如下验证:任何数字都可以上传到服务器,但总计必须小于5mb?

我认为fine uploader没有这个选项(我不使用它)。如果您使用的是php,那么可以在php.ini文件中设置最大POST大小


既然你可以很容易地创建自己的并控制一切,为什么还要使用FinUploader呢?我是唯一一个想要控制一切的人吗?

我认为fine uploader没有这个选项(我不使用它)。如果您使用的是php,那么可以在php.ini文件中设置最大POST大小


既然你可以很容易地创建自己的并控制一切,为什么还要使用FinUploader呢?我是唯一一个想控制一切的人吗?

最好的办法就是利用这个机会。在那里,您可以保持所有提交文件大小的运行总数。一旦达到最大值,就可以开始拒绝文件。例如:

var totalAllowedSize = 5000000,
    totalSizeSoFar = 0;

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

做到这一点的最佳方法是利用。在那里,您可以保持所有提交文件大小的运行总数。一旦达到最大值,就可以开始拒绝文件。例如:

var totalAllowedSize = 5000000,
    totalSizeSoFar = 0;

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

我只是想与大家分享我的最终解决方案“fineuploader”和jquery包装器

 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;                
        });
var totalAllowedSize=10*1024*1024;
var totalSizeSoFar=0;
var fuUrl='[endpoint]';
$('#jquery wrapped fine uploader')。fine uploader({
请求:{
端点:fuUrl
}               
}).on('complete',函数(事件、id、名称、响应){
__doPostBack(“”,null);
}).on(“验证”,函数(事件,obj){
var fSize=obj[0]。大小;
如果(TotalSizeFar+fSize>totalAllowedSize){
警告(“附加到电子邮件的附件超过10mb,请改为添加到附件的链接”);
返回false;
}
totalSizeSoFar+=fSize;
});

PS再次感谢Ray for idea

我只想与大家分享我使用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;                
        });
var totalAllowedSize=10*1024*1024;
var totalSizeSoFar=0;
var fuUrl='[endpoint]';
$('#jquery wrapped fine uploader')。fine uploader({
请求:{
端点:fuUrl
}               
}).on('complete',函数(事件、id、名称、响应){
__doPostBack(“”,null);
}).on(“验证”,函数(事件,obj){
var fSize=obj[0]。大小;
如果(TotalSizeFar+fSize>totalAllowedSize){
警告(“附加到电子邮件的附件超过10mb,请改为添加到附件的链接”);
返回false;
}
totalSizeSoFar+=fSize;
});

PS再次感谢Ray的创意

这并不是一个真正有用的答案。问题被标记为
fine uploader
,您或多或少地提供了您的意见作为答案。另外,我不同意创建自己的上传程序()很容易。然而,我确实给出了这个问题的解决方案。我以后不会把我的意见作为解决办法。而且,你的解决办法也没有用。您假设所有文件都是在一个请求中发送的-这不是真的。很抱歉试图提供帮助。下一次当我看到一个问题的主题不是我的专家(他们都是),我会忽略它。这就是你想要的吗?而不是提供错误的建议?是的,请注意这根本不是一个有用的答案。问题被标记为
fine uploader
,您或多或少地提供了您的意见作为答案。另外,我不同意创建自己的上传程序()很容易。然而,我确实给出了这个问题的解决方案。我以后不会把我的意见作为解决办法。而且,你的解决办法也没有用。您假设所有文件都是在一个请求中发送的-这不是真的。很抱歉试图提供帮助。下一次当我看到一个问题的主题不是我的专家(他们都是),我会忽略它。这就是你想要的吗?而不是提供错误的建议?是的,请不要使用上的
。来为您的案例提供事件处理程序。使用我的示例可能更有效。我仍然在使用ProjectFineUploaderV.3,没有使用“onValidate”函数编写代码。这就是为什么要重写它,而不需要在您的案例中使用
.on
来提供事件处理程序。使用我的示例可能更有效。我仍然在使用ProjectFineUploaderV.3,没有使用“onValidate”函数编写代码。这就是为什么要重写一点