我的表格:
<?php
$form=$this->beginWidget('CActiveForm', array(
'id'=>'news-form',
'htmlOptions'=>array('enctype'=>'multipart/form-data'),
));
?>
<div class="form-group col-sm-12 col-md-6">
<?php echo $form->labelEx($news,'state'); ?>
<?php echo $form->dropDownList($news,'state', CHtml::listData($op,'Value','Type'),array('class' => 'form-control')) ?>
<?php echo $form->error($news,'state'); ?>
</div>
<!-- HERE MY PROBLEM -->
<input type="file" name="original" onchange="change(event)" id="original" />
<?php echo CHtml::submitButton(Yii::t('app','CreateNewsLabel'), array('class' => 'btn btn-primary'), $news->isNewRecord ? 'Create' : 'Save'); ?>
当我进入我的控制器时,我尝试获取不存在的文件:
if (isset($_FILE['original'])) {
//..
}
永远不会执行if。我已经尝试了很多可能的解决方案但是没有用。我不明白原因,因为我正在使用mulipart / form-data并且应该存在......
谢谢你,问候。
答案 0 :(得分:0)
看来你有一个错字。尝试使用
if (isset($_FILES['original'])) {
//..
}
您也可以尝试通过YII进行此类验证,而不是使用默认的PHP方式。
$model->image=CUploadedFile::getInstance($model,'original');
在视图中,您可以添加此内容。
echo $form->labelEx($model, 'original');
echo $form->fileField($model, 'original');
echo $form->error($model, 'original');
在上传之前为您的文件添加验证尝试此操作。
public function rules()
{
return array(
array('original', 'file', 'types'=>'jpg, gif, png', 'safe' => false),
);
}