1

在精细上传器中,文件上传验证在每个文件的基础上进行。我想验证整批选定的文件。假设我选择了 10 个文件,整个批次的大小为 10mb,并且我的最大上传限制为 5mb。

有什么方法可以选择苍蝇的总大小。我想在 Html5 兼容浏览器以及 Html4 浏览器(即 IE)中执行此操作。

4

1 回答 1

0

首先,在 IE9 或更早版本中无法执行此操作,因为需要文件 API 支持(并且在 IE9 或更早版本中不存在)。如果没有文件 API 支持,则绝对无法在客户端确定文件大小。

也就是说,我可以在所有其他浏览器中为您提供解决方案。关键是使用onValidateBatch 回调。例如:

var maxAllowedBatchSize = 5000000;

$('#uploadContainer').fineUploader({
    request: {
        endpoint: '/my/endpoint'
    }
)}
    .on('validateBatch', function(event, fileOrBlobDataArray) {
        var totalSize = 0;

        $.each(fileOrBlobDataArray, function(idx, fileOrBlobData) {
            totalSize += fileOrBlobData.size;
        });

        // Tell Fine Uploader to ignore the entire batch of files
        // if the batch exceeds the total size limit.
        if (totalSize > maxAllowedBatchSize) {
            return false;     
        } 
    });

您还需要包括服务器端验证,因为诸如此类的客户端检查可以由用户操作(并且在非文件 API 浏览器中不起作用)。

于 2013-07-17T12:54:06.650 回答