为什么每次我在Laravel中保存图像时都已创建文件夹?

时间:2019-05-30 09:03:10

标签: storage laravel-5.7

在阅读了许多文档之后,我能够将图像保存在Laravel中。

但是现在我收到一个错误,每次我将图像保存到一个为该图像创建的单独文件夹中

所以,如果我保存图像,它会像

一样保存
  

http://localhost/storage/uploads/phpAC6E.tmp.jpg/gedmQBjYgGecrqiuJol6wQs0BKkkMuCko91opWvi.jpeg

请注意,文件夹 phpAC6E.tmp.jpg 是自动创建的。

  

问题here不是我想要的。

我不知道我要去哪里错了,我已经尝试了很多东西,但是没有用。以下是我的代码段:

filesystem.php 配置-

'local' => [
            'driver' => 'local',
            'root' => storage_path('app/public/uploads'),
            'url' => env('APP_URL').'/storage/uploads',
            'visibility' => 'private',
        ],

我的控制器功能-

public function save(Request $request){

        $file = $request->file('image');

        $ext = $file->getClientOriginalExtension();
        $path = Storage::disk('local')->put($file->getFilename().'.'. $ext,  $request->file('image'));

        return Storage::url($path);

    }

创建的文件夹类似于this

1 个答案:

答案 0 :(得分:0)

为什么不尝试此代码。它的工作正常。通过在域的根目录外部创建第一个附件文件夹并将其保存在公共文件夹中,它将保存在公用文件夹中。如果要保存在公用文件夹中,请更改为:

$file->move(public_path('attachments'), $name);

if($request->hasfile('filename'))
{
   $file=$request->file('filename');

   $name=$file->getClientOriginalName();
   $file->move(public_path().'/attachments', $name);
   DB::table('tblname')->insert([
   'filename' => $name,
 ]);

}