Люди помогите разобраться с загрузкой файла на сервак, при загрузке в форму и отправке постоянно сообщается ошибка что форма с файлом пуста
Вот что я написал
Контроллер
Модуль
Сама форма
помогите пожалуйста а то я уже не знаю что и делать
Вот что я написал
Контроллер
public function actionCreate() { $model=new students; $this->performAjaxValidation($model); if(isset($_POST['Students'])) { $model->attributes=$_POST['Students']; $model->image=$this->saveFile($model,'image'); if($model->save()) $this->redirect(array('view','id'=>$model->id)); } $this->render('create',array( 'model'=>$model, )); } public function actionUpdate() { $model=$this->loadModel(); $this->performAjaxValidation($model); if(isset($_POST['Students'])) { $model->attributes=$_POST['Students']; $model->image=$this->saveFile($model,'image'); if($model->save()) $this->redirect(array('view','id'=>$model->id)); } $this->render('update',array( 'model'=>$model, )); } public function saveFile($model,$name=null){ $tmp=$_POST[$name.'-src']; $delete=true; if($name!==null){ $UPimage=CUploadedFile::getInstance($model,$name); if($UPimage!==NULL) { if(Students::model()->count("`{$name}`='{$tmp}'")>0){$delete=false;} if(strstr($UPimage->type,'image')) { $path=pathinfo($UPimage->name); $fileName='Students-'.time().'.'.$path["extension"]; $UPimage->saveAs('upload/tmp_Students_'.$fileName); // save the uploaded file Yii::import('application.extensions.image.Image'); $image = new Image('upload/tmp_Students_'.$fileName); $w=$image->width;$h=$image->height; if($w>306 || $h>306) $image->resize(306,306); $image->save('upload/Students/'.$fileName); if($delete){if(is_file('upload/Students/'.$tmp))unlink('upload/Students/'.$tmp);} if($w>100 || $h>100) $image->resize(100,100); $image->save('upload/Students/sm/'.$fileName); if($delete){if(is_file('upload/Students/sm/'.$tmp))unlink('upload/Students/sm/'.$tmp);} unlink('upload/tmp_Students_'.$fileName); }else { if($delete){if(is_file('upload/Students/'.$tmp))unlink('upload/Students/'.$tmp);} $UPimage->saveAs('upload/Students/'.$fileName); // save the uploaded file } return $fileName; }elseif($_POST[$name.'-src']!=''){ return $_POST[$name.'-src']; } } return $tmp; }
Модуль
/** * This is the model class for table "data_students". */ class Students extends CActiveRecord { /** * The followings are the available columns in table 'data_students': * @var integer $id * @var string $title * @var string $image */ /** * Returns the static model of the specified AR class. * @return Students the static model class */ public static function model($className=__CLASS__) { return parent::model($className); } /** * @return string the associated database table name */ public function tableName() { return 'data_students'; } public function modelTitle() { return 'Students'; } public function modelOptions() { return array( 'images'=>array( 'sm'=>'100x100', 'full'=>'500x500' ) ); } /** * @return array validation rules for model attributes. */ public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return array( array('title, image', 'required'), array('title, image', 'length', 'max'=>255, 'encoding' => 'UTF-8'), array('image', 'file','types'=>'jpg, png, gif','allowEmpty'=>true), // The following rule is used by search(). // Please remove those attributes that should not be searched. array('id, title, image', 'safe', 'on'=>'search'), ); } /** * @return array relational rules. */ public function relations() { // NOTE: you may need to adjust the relation name and the related // class name for the relations automatically generated below. return array( ); } public function relationsTitle() { return array( ); } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'id' => '№', 'title' => 'Название', 'image' => 'Изображение', ); } /** * Retrieves a list of models based on the current search/filter conditions. * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. */ public function search() { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria=new CDbCriteria; $criteria->compare('id',$this->id); $criteria->compare('title',$this->title,true); return new CActiveDataProvider(get_class($this), array( 'criteria'=>$criteria, )); } public function beforeValidate() { return true; } }
Сама форма
<div class="row" > <?php echo $form->labelEx($model,'image'); ?> <?php echo $form->fileField($model,'image'); ?> <?php echo $form->error($model,'image'); ?> <?php echo is_file('upload/Students/sm/'.$model->image.'')?'<div class="picture">'.CHtml::link(CHtml::image('/upload/Students/sm/'.$model->image),'/upload/Students/'.$model->image,array('target'=>'_blank')).'</div>':''; ?> <?php echo is_file('upload/Students/'.$model->image)?CHtml::hiddenField('image-src',$model->image):''; ?> </div>
помогите пожалуйста а то я уже не знаю что и делать