文件类型未经过验证

时间:2014-06-19 08:40:12

标签: yii

我在尝试将文件类型保存到数据库之前验证它。这是我的规则

array('picture', 'file', 'types'=>'jpg, gif, png, jpeg', 'allowEmpty'=>true, 'maxSize'=>1024*1024/*1mb*/, 'tooLarge'=>Yii::t('default', 'File is too large'), 'on'=>'create'),

我正在尝试上传多张图片

foreach($_FILES["picture"]["name"] as $key=>$value)
{
    $images->picture='file';
    $images->IDbuyitnow=1;
    if($images->validate())
        echo $value." ";
    else
        echo "doesnt work";
}

HTML代码

<?php echo CHtml::fileField('picture[]','',array('class'=>'form-control' ,'multiple'=>true, 'accept'=>'image/*')); ?>

我知道我应该使用CMultiUpload,但我想这样做。但它总是验证它,即使$ images-&gt; picture =“file”或“25.docx”。 var_dump($ images-&gt; validate())返回true

1 个答案:

答案 0 :(得分:0)

[已解决]最奇怪的事情,属性不应被称为&#34;图片&#34;但&#34;图像&#34;代替。

完整解决方案

HTML

<?php echo CHtml::fileField('image_file[]','',array('class'=>'form-control' ,'multiple'=>true, 'accept'=>'image/*')); ?>

CONTROLLER

$images=new BuyItNowImage;
$file=CUploadedFile::getInstancesByName('image_file');
foreach($fileas $key=>$value)
{
    $images->image_file=$value;
    $images->IDbuyitnow=1;

    if($images->validate())
        echo "ok";
    else
        echo "not ok";

}

MODEL

array('image_file', 'file', 'types'=>'jpg, gif, png, jpeg', 'allowEmpty'=>true, 'maxSize'=>1024*1024/*1mb*/, 'tooLarge'=>Yii::t('default', 'File is too large')),