Php yii CMultiFileUpload最大文件大小验证

Php yii CMultiFileUpload最大文件大小验证,php,yii,cmultifileupload,Php,Yii,Cmultifileupload,我正在使用CMultifileUpload进行文件上载,并尝试设置文件的最大上载大小。当我搜索时,没有得到任何内置参数来设置上传前的最大文件大小 这里是我的上传文件代码 $filetype="avi|flv|mp4|mpeg|mov|3gp|mkv|vob|divx|mpg|wmv|wlmp"; $this->widget('CMultiFileUpload', array( 'model'=>$model,

我正在使用CMultifileUpload进行文件上载,并尝试设置文件的最大上载大小。当我搜索时,没有得到任何内置参数来设置上传前的最大文件大小

这里是我的上传文件代码

$filetype="avi|flv|mp4|mpeg|mov|3gp|mkv|vob|divx|mpg|wmv|wlmp";
            $this->widget('CMultiFileUpload', array(
                'model'=>$model,
                'name' => 'videofile', 
                'max'=>1,
                'accept' => $filetype,  
                'duplicate' => 'Duplicate file!', 
                'denied' => 'Invalid file type', 
                'htmlOptions'=>array('style'=>'opacity: 0;  height: 136px; width: 200px;cursor: pointer;'),
                'options'=>array(
                    'onFileSelect'=>'function(e, v, m){
                        var size=$("#videofile")[0].files[0].size;
                        alert(size);
                        if(size <=25*1024*1024){
                            $(".black_overlay").show();
                            $("#video-form").submit();
                        }else{
                            alert("File Size Exceeded");
                            $("#video-form").reset();
                            return false;
                        }
                    }',

                 ),
            ));
我得到的是,if条件成功案例运行良好,但对于失败案例,表单没有重置

实际上我想做的是,在提交之前验证文件大小


帮帮我。提前感谢。

在规则中尝试以下内容:

array('yourfile','file', 'types'=>'jpg, gif, png, jpeg', 'maxSize'=>1024 * 1024 * 50, 'tooLarge'=>'File has to be smaller than 50MB'),
更多详情:

或者配置php.ini文件:

Cmultifileupload文件大小验证对我有效


你可以试试这个。这会奏效的

'afterFileSelect'=>'function(e ,v ,m){
            var fileSize = e.files[0].size;
                 if(fileSize>800*1024){ <--800KB limit
                    alert("Exceeds file upload limit 800KB");
                    $(".MultiFile-remove").click(); <--cliks the remove button if size exceeds
                  }                      
                  return true;

                }',
为我工作:


我正在使用CMultiFileUpload,这里我如何使用CFileValidator。我想在文件上使用select本身。你能再解释一下吗?@Akilan首先你必须在你的模型中复制这一点,并通过ajax进行验证,也许你必须进行自定义操作。检查这个:你能详细说明一下如何工作吗?你是说我给出的代码吗?如果是,那么代码将找到当前选择的文件大小,并检查其是否超过800kb。警告错误并单击小部件上的“删除”按钮。。该文件将被删除,因此您可以上载另一个文件。例如,如果上载了3个文件,但只有第3个文件太大,则所有文件都将被$.MultiFile remove删除。单击;。我也是!,我也是!,我也是没有答案。如果不是真正有价值的,请不要回答老问题。例如,如果上载了3个文件,并且只有第3个文件太大,则所有文件都将被$photos.reset;删除;。
'afterFileSelect'=>'function(e ,v ,m){
            var fileSize = e.files[0].size;
                 if(fileSize>800*1024){ <--800KB limit
                    alert("Exceeds file upload limit 800KB");
                    $(".MultiFile-remove").click(); <--cliks the remove button if size exceeds
                  }                      
                  return true;

                }',
<div id="multFileUpload">
<?php
$this->widget('CMultiFileUpload', array(
    'model'=>$model,
    'attribute'=>'updatePhoto',
    'accept'=>'jpg|jpeg|gif|png',
    'name'=>'photos',
    'remove'=>'remove',
    'options'=>array(
        'onFileSelect'=>'function(e ,v ,m){
            var fileSize = e.files[0].size;
            if(fileSize>1024*1024){ //1MB
                alert("Maximum file size 1MB only");
                $("#photos").reset();
                return false;
            }
        }',
    ),
    'denied'=>'File is not allowed',
    'max'=>10, //max 10 files
));
?>
</div>