ext)); } /** * 宽 * @return int */ public function getWidthAttribute() { $this->generateSizeData(); return $this->appendattrs['width']; } /** * 高 * @return int */ public function getHeightAttribute() { $this->generateSizeData(); return $this->appendattrs['height']; } /** * 生成尺寸数据 */ private function generateSizeData() { if (!isset($this->appendattrs['width'])) { $width = -1; $height = -1; if (in_array($this->ext, ['jpg', 'jpeg', 'gif', 'png'])) { $path = public_path($this->getRawOriginal('path')); [$width, $height] = Cache::remember("File::size-" . md5($path), now()->addDays(7), function () use ($path) { $width = -1; $height = -1; if (file_exists($path)) { $paramet = getimagesize($path); $width = $paramet[0]; $height = $paramet[1]; } return [$width, $height]; }); } $this->appendattrs['width'] = $width; $this->appendattrs['height'] = $height; } } }