在 Laravel 中,文件上传通常通过 HTTP 请求和文件系统进行。以下是一个简单的例子,展示了如何在 Laravel 中创建一个用于文件上传的路由和控制器方法。
首先,确保在 .env
文件中配置了以下设置:
FILESYSTEM_DRIVER=public
然后,在 routes/web.php
中添加一个用于上传文件的路由:
Route::post('/upload', 'UploadController@store')->name('upload');
接下来,创建控制器 UploadController
。使用 Artisan 命令行工具创建控制器:
php artisan make:controller UploadController
在 app/Http/Controllers/UploadController.php
文件中,添加 store
方法来处理上传:
public function store(Request $request)
{
if ($request->hasFile('file')) {
$file = $request->file('file');
$filename = time() . '.' . $file->getClientOriginalExtension();
$path = $file->storeAs('uploads', $filename, 'public');
return response()->json(['success' => true, 'path' => $path]);
}
return response()->json(['success' => false]);
}
在你的前端视图中,你需要创建一个表单来上传文件:
<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data">
@csrf
<input type="file" name="file">
<button type="submit">Upload</button>
</form>
确保你的 JavaScript 代码处理上传请求,并在成功上传后适当地处理响应。
这个例子展示了 Laravel 中文件上传的基本流程。记得在 config/filesystems.php
中配置你的磁盘,并确保已经运行了 php artisan storage:link
命令链接了公共文件夹到 public/storage
。