getDriver())->putFile($this->getPath(), $file); if ($path) { Attachments::create(array_merge(['path' => $path], $this->data($file))); } return ['path' => Utils::getCloudDomain($this->getDriver()) . $path]; } /** * get upload driver * * @author JaguarJack * @email njphper@gmail.com * @time 2020/1/25 * @return string */ protected function getDriver(): string { return $this->driver; } /** * set driver * * @author JaguarJack * @email njphper@gmail.com * @time 2020/1/25 * @param $driver * @throws \Exception * @return $this */ public function setDriver($driver): self { if (!in_array($driver, [self::OSS, self::QCLOUD, self::QIQNIU, self::LOCAL])) { throw new \Exception(sprintf('Upload Driver [%s] Not Supported', $driver)); } $this->driver = $driver; return $this; } /** * * @author JaguarJack * @email njphper@gmail.com * @time 2020/1/25 * @return string */ protected function getPath() { return $this->path; } /** * * @author JaguarJack * @email njphper@gmail.com * @time 2020/1/25 * @param string $path * @return $this */ public function setPath(string $path) { $this->path = $path; return $this; } /** * * @time 2020年01月25日 * @param UploadedFile $file * @return array */ protected function data(UploadedFile $file) { return [ 'file_size' => $file->getSize(), 'mime_type' => $file->getMime(), 'file_ext' => $file->getExtension(), 'filename' => $file->getOriginalName(), 'driver' => $this->getDriver(), ]; } }