first(); return $model; } /** * 下载图片 * * @param FileImg $fileImg 图片模型 * @return resource|null 下载响应 */ public function download(FileImg $fileImg) { return Storage::disk($fileImg->storage_disk)->download($fileImg->path); } /** * 通过ID获取图片URL * * @param int $id 图片ID * @return string 图片URL */ public function getPicUrl4Id($id) { $model = FileImg::find($id); if($model){ return $this->getPicUrl($model); } return ''; } /** * 获取图片的可用访问地址 * * @param FileImg $fileImg 图片模型 * @param bool $private 是否私有 * @return string 图片URL */ public function getPicUrl(FileImg $fileImg, $private = false) { if($fileImg->private == 1){ // 私有的地址 if($private){ return Storage::disk('local')->url($fileImg->path); } return ''; } $src = Storage::disk($fileImg->storage_disk)->url($fileImg->path); return $src; } /** * 获取后台上传的图片的访问地址 * * @param string $path 图片路径 * @return string 图片URL */ public function getAdminPicUrl($path) { $disk = config('admin.upload.disk'); if (config("filesystems.disks.{$disk}")) { $src = Storage::disk($disk)->url($path); } return $src; } /** * 获取后台上传的图片的源地址 * * @param string $path 图片路径 * @return string 图片源地址 */ public function getAdminPicSrc($path) { $disk = config('admin.upload.disk'); if (config("filesystems.disks.{$disk}")) { $src = Storage::disk($disk)->url($path); } $ss = parse_url($src); return $ss['path']; } /** * 保存后台图片 * * @param string $path 图片路径 * @param mixed $data 图片数据 * @return bool 是否成功 */ public function saveAdminPic($path, $data) { $disk = config('admin.upload.disk'); if (config("filesystems.disks.{$disk}")) { $src = Storage::disk($disk)->put($path, $data); } return $src; } /** * 检查后台图片是否存在 * * @param string $path 图片路径 * @return bool 是否存在 */ public function hasAdminPic($path) { $disk = config('admin.upload.disk'); if (config("filesystems.disks.{$disk}")) { $src = Storage::disk($disk)->exists($path); } return $src; } /** * 图片处理为可访问的地址 * * @param array $arr 图片数组 * @return array 图片URL数组 */ public function imgArr2imgArrurl($arr) { $res = []; foreach ($arr as $img){ $res[] = $this->img2imgurl($img); } return $res; } /** * 图片处理为可访问的地址 * * @param string $img 图片路径 * @return string 图片URL */ public function img2imgurl($img) { if(substr($img,0,8) == '/storage'){ return $this->getAdminPicUrl(substr($img,8)); } return $img; } }