2017-02-02 7 views
0

У меня проблема при загрузке файла с расширением .php. Проблема становится пустым и безуспешно перенаправляется на индекс (файлы загружены, но страница пуста)Yii2 Пустая страница при загрузке файла с расширением .php

Этого не происходит, когда я использую другие файлы расширений (jpeg, jpg, txt, doc, docx и т. Д.).

Ps. Я использую Oracle в качестве базы данных и с использованием yii2 UploadedFile

Вот моя модель

public static function tableName() 
{ 
    return 'JOB'; 
} 

public function rules() 
{ 
    return [ 
     [['JOBNAME', 'CLASS', 'ACTION', 'SCHEDULE', 'STATUS'], 'required'], 
     [['ID', 'STATUS'], 'integer'], 
     [['JOBNAME'], 'string', 'max' => 30], 
     [['FILECOMMAND'], 'file', 'skipOnEmpty' => false, 'extensions' => 'jpeg, php, txt'], 
     [['CLASS', 'ACTION', 'SCHEDULE'], 'string', 'max' => 100], 
     [['ID'], 'unique'], 
    ]; 
} 

}

Вот мой контроллер

public function actionCreate() 
{ 
    $scheduleList = yii::$app->params['cronparam']; 
    $model = new JOB(); 
    if (yii::$app->request->post()) { 
     $state = true; 
     $data = yii::$app->request->post()['JOB']; 
     try { 
      $transaction = Yii::$app->db->beginTransaction(); 
      $model->JOBNAME = $data['JOBNAME']; 
      $model->CLASS = $data['CLASS']; 
      $model->ACTION = $data['ACTION']; 
      $model->SCHEDULE = $data['SCHEDULE']; 
      $model->STATUS = $data['STATUS']; 
      $model->files = UploadedFile::getInstance($model, 'FILECOMMAND'); 
      $model->FILECOMMAND = $model->files; 
      $model->files->saveAs(yii::getAlias('@app') . yii::$app->params['pathJobFile'] . $model->files->baseName . '.' . $model->files->extension, false); 

      if (!$model->save()) { 
       $ErrorMessage = $model->getErrorMessage($model->getErrors()); 
       throw new Exception($ErrorMessage); 
      } 
      $message = "Success insert Job " . ucwords($model->JOBNAME); 
      $transaction->commit(); 
     } catch (Exception $e) { 
      $message = $e->getMessage(); 
      $state = false; 
      $transaction->rollBack(); 
     } 
     if ($state) { 
      Yii::$app->session->setFlash('SuccessJob', $message); 
      $this->redirect('index'); 
     } else { 
      Yii::$app->session->setFlash('ErrorJob', $message); 
      $this->render('create', ['scheduleList' => $scheduleList, 'model' => $model]); 
     } 
    } else { 
     return $this->render('create', ['scheduleList' => $scheduleList, 'model' => $model]); 
    } 
} 

ответ

0

Добавить return заявления здесь:

if ($state) { 
    Yii::$app->session->setFlash('SuccessJob', $message); 
    return $this->redirect('index'); //here 
} else { 
    Yii::$app->session->setFlash('ErrorJob', $message); 
    return $this->render('create', ['scheduleList' => $scheduleList, 'model' => $model]); //and here 
} 
+0

спасибо, я забыл написать это –

+0

после того, как я напишу, что проблема все еще возникает при загрузке с помощью файла расширения php, решение добавляет 'checkExtensionByMimeType' => false в модели –

 Смежные вопросы

  • Нет связанных вопросов^_^