0

ファイルのアップロードに 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;
                        }
                    }',

                 ),
            ));

私が得ているのは、条件が成功した場合は正常に機能していますが、失敗した場合はフォームがリセットされないということです。

実際に私が試みているのは、送信する前にファイルサイズを検証したいということです。

助けて。前もって感謝します。

4

4 に答える 4

1

あなたのルールでこれを試してください:

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

于 2013-06-19T13:34:25.113 に答える
1

これを試すことができます。これはうまくいきます

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

                }',
于 2014-01-21T12:27:54.150 に答える