コード例 #1
0
ファイル: DownloadAction.php プロジェクト: d3yii2/d3files
 public function run($id)
 {
     if (!($fileModel = D3filesModel::findOne(['id' => $id, 'deleted' => 0]))) {
         throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
     }
     if (!($file = D3files::findOne($fileModel->d3files_id))) {
         throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
     }
     if (!($fileModelName = D3filesModelName::findOne($fileModel->model_name_id))) {
         throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
     }
     /**
      * validate modelname
      */
     if (Yii::$app->getModule('d3files')->disableController) {
         if ($fileModelName->name != $this->modelName) {
             throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
         }
     }
     // Check access rights to the record the file is attached to
     D3files::performReadValidation($fileModelName->name, $fileModel->model_id);
     $modelName = $fileModelName->name;
     if (!$fileModel->is_file) {
         if (!($realFileModel = D3filesModel::findOne(['d3files_id' => $fileModel->d3files_id, 'is_file' => 1]))) {
             throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
         }
         if (!($realfileModelName = D3filesModelName::findOne($realFileModel->model_name_id))) {
             throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
         }
         $modelName = $realfileModelName->name;
         //$modelName
     }
     $fileHandler = new FileHandler(['model_name' => $modelName, 'model_id' => $file->id, 'file_name' => $file->file_name]);
     $fileHandler->download();
 }
コード例 #2
0
ファイル: UploadAction.php プロジェクト: d3yii2/d3files
 public function run($id)
 {
     // $id here is id for model to which will be attached attachments
     Yii::$app->response->format = Response::FORMAT_JSON;
     if (!isset($_FILES['upload_file'])) {
         throw new NotFoundHttpException(Yii::t('d3files', 'File not uploaded.'));
     }
     // If controller actions are not disabled, use $_POST['model_name']
     if (!Yii::$app->getModule('d3files')->disableController) {
         $this->modelName = Yii::$app->request->post('model_name');
     }
     if (empty($this->modelName)) {
         throw new HttpException(422, Yii::t('d3files', 'mandatory POST parameter modelName is not set'));
     }
     // Check access rights to the record the file is attached to
     D3files::performReadValidation($this->modelName, $id);
     $tmp_id = uniqid();
     $fileHandler = new FileHandler(['model_name' => $this->modelName, 'model_id' => $tmp_id, 'file_name' => $_FILES['upload_file']['name']]);
     $fileHandler->upload();
     $model = new D3files();
     $model->file_name = $_FILES['upload_file']['name'];
     $model->add_datetime = new \yii\db\Expression('NOW()');
     $model->user_id = Yii::$app->user->getId();
     if ($model->save()) {
         // Get or create model name id
         $modelMN = new D3filesModelName();
         $model_name_id = $modelMN->getByName($this->modelName, true);
         $modelM = new D3filesModel();
         $modelM->d3files_id = $model->id;
         $modelM->is_file = 1;
         $modelM->model_name_id = $model_name_id;
         $modelM->model_id = $id;
         $modelM->save();
         $fileHandler->rename($model->id);
     } else {
         $fileHandler->remove();
         throw new HttpException(500, Yii::t('d3files', 'Insert DB record failed'));
     }
     $renderParam = ['id' => $model->id, 'file_name' => $model->file_name, 'file_model_id' => $modelM->id];
     return $this->controller->renderFile(Yii::$app->getModule('d3files')->getView('d3files/upload'), $renderParam);
 }
コード例 #3
0
ファイル: DeleteAction.php プロジェクト: d3yii2/d3files
 public function run($id)
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     if (!($fileModel = D3filesModel::findOne(['id' => $id, 'deleted' => 0]))) {
         throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
     }
     if (!($fileModelName = D3filesModelName::findOne($fileModel->model_name_id))) {
         throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
     }
     /**
      * validate modelname
      */
     if (Yii::$app->getModule('d3files')->disableController) {
         if ($fileModelName->name != $this->modelName) {
             throw new NotFoundHttpException(Yii::t('d3files', 'The requested file does not exist.'));
         }
     }
     // Check access rights to the record the file is attached to
     D3files::performReadValidation($fileModelName->name, $fileModel->model_id);
     $fileModel->deleted = 1;
     $fileModel->save();
     return $this->controller->renderFile(Yii::$app->getModule('d3files')->getView('d3files/delete'));
 }