/** Implementation of file attachment */ public function actionAttachment() { $request = Yii::$app->request; if (Yii::$app->request->post()) { $value = \Yii::$app->request->post(); $congress = $request->post('congress'); if ($congress) { $records = \backend\models\CongressAttachments::find()->where(array('congress_id' => $congress))->all(); $return = []; $data = array(); foreach ($records as $row) { $congressname = CongressDetails::findOne($row->congress_id)->name; $protocol = stripos($_SERVER['SERVER_PROTOCOL'], 'https') === true ? 'https://' : 'https://'; $host = $_SERVER['HTTP_HOST']; $filename = explode("/", $row['path']); $filenames = end(explode(".", $filename[1])); $data['filename'] = str_replace($filenames, "", $filename[1]); $data['filename'] = str_replace(".", "", $filename[1]); $data['filetype'] = $filenames; $data['path'] = $protocol . $host . "/rest/backend/web/" . $row['path']; $data['exits'] = file_exists($_SERVER['DOCUMENT_ROOT'] . '/rest/backend/web/' . $row['path']); $return[] = $data; } return $return; } else { return "parameter missing"; } } else { return 'invalid method'; } }
/** * Uploads congress attachment * @param int $id * @return mixed */ public function actionUpload($id) { $id = (int) $id; $model1 = new CongressAttachments(); if ($model1->load(Yii::$app->request->post())) { $model1->path = UploadedFile::getInstances($model1, 'path'); foreach ($model1->path as $files) { if ($files->saveAs('uploads/' . $files->baseName . '.' . $files->extension)) { $model1->congress_id = $id; $path = "uploads/" . $files->name; $filesize = $files->size; $filetype = $files->extension; Yii::$app->db->createCommand("insert into congress_attachments(congress_id,path,size,type)values('{$id}','{$path}','{$filesize}','{$filetype}')")->execute(); } } return $this->redirect(array("congress/update", 'id' => $id)); } }