首页 > 解决方案 > Laravel 保存时有时会生成一个带有图片名称的文件夹

问题描述

我将图像保存在 laravel 存储文件夹中,基本上我所有的代码都是这个


      $image = $request->file('image');
      $ext = $image->getClientOriginalExtension();
    
      $name = Hash::make(Carbon::now()) . '.' .$ext;
      $image->storeAs('public/images/tmp', $name);

正确保存图像,例如: https://i.stack.imgur.com/LJbMU.png

但有时它会将其保存在具有相同名称的文件夹中:https://i.stack.imgur.com/Y5ubR.png

我怎样才能避免呢?

标签: laravelphp-7.2

解决方案


您的哈希正在生成一个/创建文件夹的字符。我建议使用 uuid 而不是 Hash:

      $image = $request->file('image');
      $ext = $image->getClientOriginalExtension();
    
      $name = uniqid() . '.' .$ext;
      $image->storeAs('public/images/tmp', $name);

推荐阅读