Example #1
0
 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)];
 }