Exemple #1
1
 function beforeSave($insert)
 {
     if (parent::beforeSave($insert)) {
         $file = UploadedFile::getInstance($this, 'image');
         if ($file && $file->error === UPLOAD_ERR_OK) {
             // Ищем, есть ли уже такой загруженный файл
             $file_model = Files::findOne(['hash' => md5_file($file->tempName)]);
             if ($file_model) {
                 $file_model->repeats++;
             } else {
                 $file_model = new Files();
                 $file_model->saveImageFile($file);
                 $file_model->repeats = 1;
             }
             $file_model->save();
             $this->file_id = $file_model->id;
         } else {
             $this->addError('image', 'Невозможно загрузить файл');
             return false;
         }
         return true;
     } else {
         return false;
     }
 }
Exemple #2
0
 /**
  * Сохраняет загруженный файл и создает ссылки в бд.
  * @param $attribute
  * @return bool
  */
 function saveUploadedImage($attribute)
 {
     $file = UploadedFile::getInstance($this, $attribute);
     if ($file->error === UPLOAD_ERR_OK) {
         $file_model = new Files();
         $file_model->saveImageFile($file);
         $file_model->post_id = $this->post_id;
         $file_model->save();
         $this->image_id = $file_model->id;
         return true;
     }
     return false;
 }
Exemple #3
0
 /**
  * Отвечает за загрузку изображений из формы редактирования записи
  * @return javascript string
  * @throws NotFoundHttpException if the model cannot be found
  */
 function actionUpload()
 {
     //return  ("<script>top.$('.mce-btn.mce-open').parent().find('.mce-textbox').val('/uploads/555efba5c24a7.jpg').closest('.mce-window').find('.mce-primary').click();</script>" );
     $upload_model = new UploadForm();
     $upload_model->load(yii::$app->request->post());
     $file = UploadedFile::getInstance($upload_model, 'file');
     if ($file->error === UPLOAD_ERR_OK) {
         try {
             $file_model = new Files();
             $file_model->saveImageFile($file);
             $file_model->post_id = $upload_model->post_id;
             $file_model->save();
             return "<script>top.\$('.mce-btn.mce-open').parent().find('.mce-textbox').val('/{$file_model->filename}').closest('.mce-window').find('.mce-primary').click();</script>";
         } catch (\Exception $e) {
         }
     }
     return "<script>\$.jGrowl('ошибка, файл не получен');</script>";
 }