繁体   English   中英

使用 Laravel 上传图片到数据库

[英]Upload a picture to database with laravel

我在 localhost 中创建了一个数据库,并在其中创建了一个名为 Gallery 的表。 我想在那里上传和存储图片,但我卡住了..你能给我任何指南或教程吗? 谢谢。

上传文件只是参考laravel文档

例如 photo 是表单中的名称 fo 文件

<form action="xxx" method="post" enctype="multipart/form-data">
   <input type="file" name="photo" />
   <input type="submit" value="update" />
</form>

存储文件然后在文件系统中返回文件的路径

$path = $request->photo->storeAs('images', 'filename.jpg');

$path = $request->photo->storeAs('images', 'filename.jpg', 's3');

然后将 $path 存储到您的数据库

首先,您需要视图中的表单(不要忘记 csrf 令牌):

<form action="/image-upload" method="POST" enctype="multipart/form-data">
    @csrf
    <input type="file" name="image">
    <button type="submit">Upload</button>
</form>

并在您的路由文件中为 POST 方法添加路由:

Route::post('image-upload', 'ImageUploadController@imageUploadPost');

然后在您的控制器上创建将验证您的图像并将其移动到'public/images'文件夹的函数。

public function imageUploadPost()
{
    request()->validate([
        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    $imageName = time().'.'.request()->image->getClientOriginalExtension();
    request()->image->move(public_path('images'), $imageName);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM