Laravel通过Filesystem实现图片上传存储,支持本地与云存储。1. 使用$request->hasFile()接收文件,$file->store()保存至指定磁盘;2. 配置filesystems.php设置public或OSS等磁盘;3. 可自定义文件名避免冲突;4. 表单需设enctype="multipart/form-data"并配置路由;5. 用Storage::url()生成访问链接,需执行php artisan storage:link。
Laravel 提供了简单且强大的文件系统来处理文件上传,尤其是图片上传和存储管理。通过 Laravel 的 Filesystem 功能,你可以轻松实现图片上传、保存、访问以及灵活配置存储路径(如本地磁盘或云存储如 OSS、S3 等)。
在控制器中接收前端上传的图片,并保存到服务器。
public function upload(Request $request)说明:
php artisan storage:link 创建软链接,使文件可被 Web 访问Laravel 的文件系统配置位于 config/filesystems.php。常见配置如下:
'disks' => [要点:
storage/app/public,需运行 php artisan storage:link 生成 public/storage 软链接overtrue/laravel-filesystem-oss),并配置自定义磁盘避免文件名冲突,建议使用哈希命名。
$filename = time() . '_' . md5($file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension();或直接使用 Laravel 自动生成的随机名称:
$path = $file->store('images', 'public'); // 自动生成类似: images/abc123xyz.jpg确保 HTML 表单设置 enctype="multipart/form-data":
路由定义(web.php):
Route::post('/upload', [UploadController::class, 'upload']);使用 Storage::url() 生
成可访问的 URL:
确保已执行:
php artisan storage:link基本上就这些。Laravel 的文件上传机制简洁高效,结合配置可适应从本地开发到生产环境的多种需求。关键是理解磁盘驱动、路径映射和 URL 生成逻辑。