security->generateRandomString(40); return $path.$hash.'.'.$this->getExtension(); } public function store($path, $options = []) { return $this->storeAs($path, $this->getHashName(), $this->parseOptions($options)); } public function storeAs($path, $name, $options = []) { $options = $this->parseOptions($options); $disk = ArrayHelper::remove($options, 'disk'); return \Yii::$app->storage->disk($disk)->putFileAs( $path, $this, $name, $options ); } protected function parseOptions($options) { if (is_string($options)) { $options = ['disk' => $options]; } return $options; } }