【问题标题】:Laravel: Upload picture to public/images - wrong file nameLaravel:将图片上传到公共/图像 - 文件名错误
【发布时间】:2022-01-18 15:41:27
【问题描述】:

我正在尝试将上传的图片保存在 public/images 目录中。

public function store(Request $request)
{
    $request->validate([
        'title' => 'required',
        'description' => 'required',
        'image' => 'required|image|mimes:jpg,png,jpeg|max:5048'
    ]);
    $newImageName = uniqid() . '-' . $request->title . '.' . $request->image->extension();
    
    $request->image->move(public_path(('images'), $newImageName));
    
    Post::create([
        'title' => $request->input('title'),
        'description' => $request->input('description'),
        'slug' => SlugService::createSlug(Post::class, 'slug', $request->title),
        'image_path' => $newImageName,
        'user_id' => auth()->user()->id
    ]);

    return redirect('/blog')
    ->with('message', 'Dein Beitrag wurde erstellt.');

}

一切正常 - 除了文件名。它应该有 $newImageName 的名称,但它看起来像 'php51F7.tmp'。扩展名也是“.tmp”,而不是“.png”或“.jpg”。

非常感谢您的帮助!

PS:我是 Laravel 的绝对初学者,请耐心等待。

【问题讨论】:

    标签: php laravel image file-upload laravel-8


    【解决方案1】:

    是额外的圆括号问题

    替换

    $request->image->move(public_path(('images'), $newImageName));
    

    $request->image->move(public_path('images'), $newImageName);
    

    【讨论】:

      【解决方案2】:

      您的代码中有错字

      public function store(Request $request)
      {
          $request->validate([
              'title' => 'required',
              'description' => 'required',
              'image' => 'required|image|mimes:jpg,png,jpeg|max:5048'
          ]);
          $newImageName = uniqid() . '-' . $request->title . '.' . $request->image->extension();
          
          #Notice here, move() accepts two parameteres
          $request->image->move(public_path('images'), $newImageName);
          
          Post::create([
              'title' => $request->input('title'),
              'description' => $request->input('description'),
              'slug' => SlugService::createSlug(Post::class, 'slug', $request->title),
              'image_path' => $newImageName,
              'user_id' => auth()->user()->id
          ]);
      
          return redirect('/blog')
          ->with('message', 'Dein Beitrag wurde erstellt.');
      
      }
      

      【讨论】:

      • 你太棒了!我几乎要疯了。谢谢!
      • 如果你想把图片存入laravel的存储盘可以参考这篇博客itsolutionstuff.com/post/…
      猜你喜欢
      • 2020-05-20
      • 1970-01-01
      • 2016-07-02
      • 2014-03-18
      • 2023-01-26
      • 2019-06-27
      • 2013-06-05
      • 2018-03-24
      • 1970-01-01
      相关资源
      最近更新 更多