123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- /**
- * Created by PhpStorm.
- * Author: NODELOG
- * DateTime: 2017/7/12 15:33
- * Description:
- */
- namespace common\modules\attachment\components;
- use common\helpers\StringHelper;
- use yii\helpers\ArrayHelper;
- /**
- * Class UploadedFile
- * @package common\modules\attachment\components
- * @property string $hashName
- */
- class UploadedFile extends \yii\web\UploadedFile
- {
- public function getHashName($path = null)
- {
- if ($path) {
- $path = rtrim($path, '/').'/';
- }
- $hash = \Yii::$app->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;
- }
- }
|