コード例 #1
0
 /**
  * @param array $uploaderConfig
  * @param array $fileConfig
  * @return \app\file\models\File[]
  * @throws \yii\base\InvalidConfigException
  */
 public function upload($uploaderConfig = [], $fileConfig = [])
 {
     /** @var BaseUploader $uploader */
     $uploader = \Yii::createObject(ArrayHelper::merge(['class' => empty($_FILES) ? '\\app\\file\\uploaders\\PutUploader' : '\\app\\file\\uploaders\\PostUploader', 'destinationDir' => $this->filesRootPath, 'maxFileSize' => $this->fileMaxSize], $uploaderConfig));
     if (!$uploader->upload()) {
         return ['errors' => $uploader->getFirstErrors()];
     }
     $files = [];
     foreach ($uploader->files as $item) {
         $file = new File();
         $file->attributes = ArrayHelper::merge($fileConfig, ['uid' => $item['uid'], 'title' => $item['title'], 'fileName' => $item['name'], 'fileMimeType' => $item['type'], 'fileSize' => $item['bytesTotal']]);
         if (!$file->save()) {
             return ['errors' => $uploader->getFirstErrors()];
         }
         $files[] = $file;
     }
     return $files;
 }