Laravel 下载图片

Laravel download image

我有一个添加图像的功能,在数据库中成功添加后,我们有一个像 public/images/asd.png 这样的路径。问题是如何确保在添加图片名称时,添加一个ID,我们有public/images/asd1.png、public/images/asd2.png等.

模型中的函数

public function getOriginImageUrl()
    {
        return $this->attributes['image'];
    }

    public function getImageAttribute($value)
    {
        return Storage::exists($value) ? Storage::url($value) : null;
    }

控制器中的函数

 if ($request->hasFile('image')) {
            $file = $request->file('image');
            $blog->image = $file->storeAs('public/images', $file->getClientOriginalName());
        }

您可以将 time() 与图像名称结合使用,而不是 id。

if ($request->hasFile('image')) {
       $file = $request->file('image');
       $namewithextension = $file->getClientOriginalName(); //Name with extension 'filename.jpg'
       $name = explode('.', $namewithextension)[0]; // Filename 'filename'
       $extension = $file->getClientOriginalExtension(); //Extension 'jpg'
       $uploadname = $name. '-' .time() . '.' . $extension;
       $blog->image = $file->storeAs('public/images', $uploadname);
 }