public static function uploadFileByApplication($id_application, $sourcePath, $fileName, $id_document_type, $source = 0) { $FileName = $id_application . '_' . $fileName; $key = DictDocument::$documentPath[$id_document_type]; if (Yii::$app->params['s3_upload']) { try { $s3 = Yii::$app->aws->createS3(); $result = $s3->putObject(['SourceFile' => $sourcePath, 'Key' => $key . $FileName, 'ACL' => 'private', 'ServerSideEncryption' => 'AES256']); } catch (HttpException $e) { throw new BadRequestHttpException("RequestTimesout,please try again."); } } if (in_array($id_document_type, [1, 5, 6, 7])) { $appDocument = AppDocument::find()->andWhere(['id_application' => $id_application, 'id_document_type' => $id_document_type])->one(); } else { $appDocument = AppDocument::find()->andWhere(['id_application' => $id_application, 'name' => $fileName, 'id_document_type' => $id_document_type])->one(); } if (!$appDocument) { $appDocument = new AppDocument(); } $appDocument->id_application = $id_application; $appDocument->name = $fileName; $appDocument->path = isset($result['ObjectURL']) ? $result['ObjectURL'] : 'outpdf/'; $appDocument->id_document_type = $id_document_type; $appDocument->source = $source; $appDocument->save(); return ['url' => isset($result['ObjectURL']) ? $result['ObjectURL'] : 'outpdf/', 'file_name' => str_replace(' ', '', $fileName)]; }