我在尝试将文件类型保存到数据库之前验证它。这是我的规则
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
答案 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')),