input('path', 'uploads') . '/' . date('Y-m-d'); $result = []; $disk = $this->getDisk(); // file 文件 $files = $request->except('path'); foreach ($files as $key => $fileData) { $item = null; if (is_array($fileData)) { foreach ($fileData as $file) { $item[] = $disk->url($this->saveFile($disk, $path, $file)); } } else { $item = $disk->url($this->saveFile($disk, $path, $fileData)); } $result[$key] = $item; } return $this->json($result); } protected function saveFile($disk, $path, $file = null) { $filePath = ''; if ($file instanceof UploadedFile) { $filePath = $disk->putFile($path, $file); } elseif (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)) { $type = $result[2]; if (in_array($type, ['jpeg', 'jpg', 'gif', 'bmp', 'png'])) { $filePath = $path . '/' . uniqid() . '.' . $type; $disk->put($filePath, base64_decode(str_replace($result[1], '', $file))); } } return $filePath; } protected function getDisk($disk = null): Filesystem { return Storage::disk($disk); } }