yii CMultiFileUpload最大文件大小验证

vbopmzt1  于 2022-11-09  发布在  其他
关注(0)|答案(4)|浏览(231)

我正在使用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;
                        }
                    }',

                 ),
            ));

我得到的是,如果条件成功的情况下工作正常,但对于失败的情况下,形式是不重置。
实际上,我正在尝试的是,在提交之前验证文件大小。
帮帮我。先谢谢你了。

06odsfpq

06odsfpq1#

请在规则中尝试以下操作:

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

更多详情:
http://www.yiiframework.com/doc/api/1.1/CFileValidator#maxSize-detail
或配置php.ini文件:
http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize

blpfk2vs

blpfk2vs2#

你可以试试这个.这个会有用的

'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;

                }',
piztneat

piztneat3#

Cmultifileupload文件大小验证对我有效。

`$this->widget('CMultiFileUpload', array(
            'model'=>$model,
            'name' => 'audiofile', 
            'max'=>1,
            'accept' => $filetype,  
            'duplicate' => 'Duplicate file!', 
            'denied' => 'Invalid file type', 

            'htmlOptions'=>array('style'=>'opacity: 0;  height: 80px; width: 118px;cursor: pointer;','size'=>25),
            'options'=>array(

                'afterFileSelect'=>'function(e ,v ,m){
                var fileSize = e.files[0].size;

                     if(fileSize>125*1024*1024){ 
                        alert("Exceeds file upload limit(500). Uploaded 200 MB not allowed!");
                      }
                      else
                      {
                        $(".black_overlay").show();
                        $("#audio-form").submit();
                      }

                      $("#audio-form").reset();
                      return false;

                    }',                                                       
             ),

        ));
lmyy7pcs

lmyy7pcs4#

适合我:

<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>

相关问题